【发布时间】:2018-10-05 10:18:41
【问题描述】:
我使用的是熊猫版本 0.23.0。我想通过函数使用数据框组来使用 lambda 函数生成新的聚合列..
我的数据框看起来像
ID Flag Amount User
1 1 100 123345
1 1 55 123346
2 0 20 123346
2 0 30 123347
3 0 50 123348
我想生成一个看起来像这样的表格
ID Flag0_Count Flag1_Count Flag0_Amount_SUM Flag1_Amount_SUM Flag0_User_Count Flag1_User_Count
1 2 2 0 155 0 2
2 2 0 50 0 2 0
3 1 0 50 0 1 0
这里:
- Flag0_Count 是 Flag = 0 的计数
- Flag1_Count 是 Flag = 1 的计数
- Flag0_Amount_SUM 是 Flag = 0 时金额的 SUNM
- Flag1_Amount_SUM 是 Flag = 1 时金额的 SUNM
- Flag0_User_Count 是 Flag = 0 时不同用户的计数
- Flag1_User_Count 是 Flag = 1 时不同用户的计数
我尝试过类似的东西
df.groupby(["ID"])["Flag"].apply(lambda x: sum(x==0)).reset_index()
但它会创建一个新的新数据框。这意味着我必须对所有列进行此操作,并将它们合并到一个新的数据框中。 有没有更简单的方法来做到这一点?
【问题讨论】:
标签: python pandas group-by pandas-groupby