2014-08-27 144 views
6

初學者提問。這看起來應該是一個簡單的操作,但我無法從閱讀文檔中找出它。熊貓羣由兩列總和

我有此結構的DF:

|integer_id|int_field_1|int_field_2| 

的integer_id列是不唯一的,所以我想組由integer_id的DF和求和的兩個字段。

等效SQL是:

SELECT integer_id, SUM(int_field_1), SUM(int_field_2) FROM tbl 
GROUP BY integer_id 

上做到這一點最簡單的方法有什麼建議?

編輯:包括輸入/​​輸出使用df.groupby( 'integer_id')

Input: 
integer_id int_field_1 int_field_2 
2656  36   36 
2656  36   36 
9702  2   2 
9702  1   1 

輸出繼電器總和():

integer_id int_field_1 int_field_2 
2656  72   72 
9702  3   3 
+0

呢'df.groupby( 'integer_id')。SUM()'給你想要的是什麼? – EdChum 2014-08-27 20:17:25

+1

啊,是的,似乎主要工作。輸出的第一行包含'integer_id',但有兩個空白字段,我不明白。 – acpigeon 2014-08-27 20:25:03

+0

這可能只是數據框的表示形式,因爲'integer_id'被設置爲索引。如果你不想'integer_id'作爲索引,你可以在'groupby'中提供'set_index = False' – joris 2014-08-27 20:28:47

回答

10

你只需要調用一個sum對象groupby上:

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

參見docs爲進一步的例子

+1

downvoter謹慎解釋? – EdChum 2017-04-15 18:50:14

1

你可以做到這一點

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