2014-08-27 13 views
6

Anfänger Frage. Dies scheint eine einfache Operation zu sein, aber ich kann es nicht durch das Lesen der Dokumente herausfinden.Pandas Gruppe von und Summe zwei Spalten

Ich habe eine df mit dieser Struktur:

|integer_id|int_field_1|int_field_2| 

Die integer_id Spalte ist nicht eindeutig, so würde ich die df von integer_id gruppieren möchten und die beiden Felder summieren.

Die äquivalente SQL ist:

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

Irgendwelche Vorschläge auf einfachste Art und Weise, dies zu tun?

EDIT: inkl. Ein-/Ausgabe

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

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

integer_id int_field_1 int_field_2 
2656  72   72 
9702  3   3 
+0

tut 'df.groupby ('integer_id'). Sum()' geben Sie, was Sie wollen? – EdChum

+1

Ah ja das scheint meistens zu funktionieren. Die erste Zeile der Ausgabe enthält 'integer_id' mit zwei leeren Feldern, die ich nicht verstehe. – acpigeon

+0

Das ist wahrscheinlich nur die Darstellung des Datenrahmens, da 'integer_id' als Index gesetzt ist. Sie können 'set_index = False' in 'groupby' angeben, wenn 'integer_id' nicht als Index verwendet werden soll. – joris

Antwort

10

Sie müssen nur sum auf einem groupby Objekt aufzurufen:

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

Siehe docs für weitere Beispiele

+1

Downvoter Pflege zu erklären? – EdChum

1

Sie tun können, es

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