Pandas group by和sum两列

时间:2014-08-27 20:05:21

标签: python pandas

初学者问题。这似乎应该是一个简单的操作,但我无法从阅读文档中弄明白。

我有一个这种结构的df:

|integer_id|int_field_1|int_field_2|

integer_id列是非唯一的,所以我想将df按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 :(得分:10)

您只需要在sum对象上调用groupby

df.groupby('integer_id').sum()

有关更多示例,请参阅docs

答案 1 :(得分:1)

You can do it

data.groupby(by=['account_ID'])['purchases'].sum()

答案 2 :(得分:0)

.agg()函数的变体;提供以下功能:(1)持久化类型DataFrame,(2)应用平均值,计数,求和等,(3)在保持易读性的同时在多个列上启用groupby。

df.groupby(['att1', 'att2']).agg({'att1': "count", 'att3': "sum",'att4': 'mean'})

使用您的值...

df.groupby(['integer_id']).agg({'int_field_1': "sum", 'int_field_2': "sum" })