Mic*_*Jr. 1 lambda python-3.x pandas pandas-groupby
我有一个像这样的数据框:
pd.DataFrame({
'animal': ['dog', 'dog', 'cat', 'dog', 'cat'],
'color': ['brown', 'black', 'white', 'black', 'black']})
Run Code Online (Sandbox Code Playgroud)
我正在尝试编写一个像这样的 groupby 函数:
groupby('animal').agg(
proportion_of_black=('color', lambda x: 1 if x == 'black' else 0)).reset_index()
Run Code Online (Sandbox Code Playgroud)
它返回以下错误消息:
ValueError:系列的真值不明确。使用 a.empty、a.bool()、a.item()、a.any() 或 a.all()。
我的代码哪里出错了?
由于您的问题要求比例而不是计数,因此您应该这样做:
df.groupby(['animal']).agg(
proportion=('color', lambda x: x.eq('black').mean())).reset_index()
animal proportion
0 cat 0.500000
1 dog 0.666667
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5382 次 |
| 最近记录: |