2 回答

TA贡献1856条经验 获得超11个赞
您可以在 agg 函数中使用 lambda 计算 True 项目
new_df = (
df
.assign(
col_3 = lambda x: x['col_3'].astype(int),
col_4 = lambda x: x['col_4'].astype(int)
)
.groupby(['col_6', 'col_5'])
.agg({'col_5' : ['count'],
'col_1' : ['mean'],
'col_2' : ['mean'],
'col_3' : lambda x: len([1 for item in x if item ==True]),
'col_4' : lambda x: len([1 for item in x if item ==True])}
)
)

TA贡献1796条经验 获得超7个赞
您可以像对整数求和一样对布尔值求和:
[ins] In [15]: df["y"]
Out[15]:
0 True
1 True
2 False
Name: y, dtype: bool
[ins] In [16]: df["y"].sum()
Out[16]: 2
所以你可以在你的字典中使用例如"col_3": ["sum"]。
添加回答
举报