如果我有下表,
ID# dispute_amt year month
1234 12.50 2019 3
1234 4.00 2019 3
5678 100 2020 5
我希望所需的表格如下
ID# dispute_count dispute_amt year month
1234 2 16 2019 3
5678 1 100 2020 5
顶部的当前表格具有重复的ID#,每月/每年都有多个争议。我想将其汇总为唯一的ID#,然后能够每月/每年计算每个ID#的所有争议。我想我需要在这里使用某种groupby运算符,但是我不知道如何使用python / pandas来真正做到这一点。
这里的任何帮助都会很棒!
答案 0 :(得分:2)
使用groupby().agg()
df.groupby(['ID#', 'year', 'month']).agg(dispute_count =('dispute_amt','count')\
,dispute_amt=('dispute_amt','sum')).reset_index()
ID# year month dispute_count dispute_amt
0 1234 2019 3 2 16.5
1 5678 2020 5 1 100.0
答案 1 :(得分:0)
由于您写过要每月汇总ID,因此您可以按ID分组并重置索引
df
.groupby(['ID#','year','month')['dispute_amt']
.count().reset_index(name='dispute_count')