2014-08-27 18 views
6

Domanda per principianti. Sembra che dovrebbe essere un'operazione semplice, ma non riesco a capirlo dalla lettura dei documenti.Pandas raggruppa per e somma due colonne

Ho un df con questa struttura:

|integer_id|int_field_1|int_field_2| 

La colonna integer_id non è unico, così mi piacerebbe gruppo df da integer_id e somma i due campi.

Lo SQL equivalente è:

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

Qualche suggerimento sul modo più semplice per fare questo?

EDIT:. Compreso input/output

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

Ouput utilizzando df.groupby ('integer_id') sum():

integer_id int_field_1 int_field_2 
2656  72   72 
9702  3   3 
+0

fa 'df.groupby ('integer_id'). Sum()' darti quello che vuoi? – EdChum

+1

Ah sì, sembra che funzioni principalmente. La prima riga dell'output include 'integer_id' con due campi vuoti, cosa che non capisco. – acpigeon

+0

Questa è probabilmente solo la rappresentazione del dataframe, dato che 'integer_id' è impostato come indice. Puoi fornire 'set_index = False' in' groupby' se non vuoi 'integer_id' come l'indice – joris

risposta

10

Hai solo bisogno di chiamare sum su un oggetto groupby:

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

Vedere la docs per ulteriori esempi

+1

cura di downvoter per spiegare? – EdChum

1

Si può fare

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