【发布时间】:2021-02-22 11:21:37
【问题描述】:
我有一个这样的熊猫数据框:
pd.DataFrame({
'gender': ['male', 'female', 'female', 'male', 'unknown'],
'height': [70, 61, 64, 73, 69]})
我正在尝试编写一个自定义函数,将汇总统计信息应用于男性/女性身高。然后,我想在 pandas 数据框上应用该自定义函数。 我不是在寻找 lambda 函数,必须是自定义函数。我的代码:
def get_summary(height):
if df['gender'] == 'male':
summary = np.mean(height)
elif df['gender'] == 'female':
summary = np.sqrt(height)
else:
summary = np.max(height)
return summary
然后我想应用这个函数并将它分配给一个名为“summary”的新列。代码:
df['summary'] = df['height'].apply(get_summary)
我收到的错误信息:
ValueError:Series 的真值不明确。使用 a.empty、a.bool()、a.item()、a.any() 或 a.all()。
【问题讨论】:
-
您的函数签名不正确,因为 df 超出了您传递的范围
标签: python-3.x pandas function