Pandas按组汇总两列
这是一个初学者的问题。看起来这应该是个简单的操作,但我从文档中找不到答案。
我有一个数据框(df),它的结构是这样的:
|integer_id|int_field_1|int_field_2|
其中,integer_id这一列的值不是唯一的,所以我想根据integer_id来分组,并对另外两个字段进行求和。
相应的SQL语句是:
SELECT integer_id, SUM(int_field_1), SUM(int_field_2) FROM tbl
GROUP BY integer_id
有没有人能建议一个最简单的方法来做到这一点?
补充说明:包括输入和输出
Input:
integer_id int_field_1 int_field_2
2656 36 36
2656 36 36
9702 2 2
9702 1 1
使用 df.groupby('integer_id').sum() 得到的输出是:
integer_id int_field_1 int_field_2
2656 72 72
9702 3 3
3 个回答
0
这是对 .agg() 函数的一种变体;它可以做到以下几点:(1) 保持数据框的类型不变,(2) 进行平均值、计数、求和等操作,(3) 允许对多个列进行分组,同时保持代码的可读性。
df.groupby(['att1', 'att2']).agg({'att1': "count", 'att3': "sum",'att4': 'mean'})
使用你的数值...
df.groupby(['integer_id']).agg({'int_field_1': "sum", 'int_field_2': "sum" })
1
你可以这样做
data.groupby(by=['account_ID'])['purchases'].sum()
11