2017-12-08 3 views
0

Ich bin groupby und kann die Summe für eine Spalte in Ordnung bekommen, aber wie bekomme ich die Summe von zwei Spalten zusammen?Pandas Groupby Summe zu Spalten

detail [ 'debit' ] = df.groupby ('type') [ 'debit' ].sum() 
detail [ 'credit' ] = df.groupby ('type') [ 'credit' ].sum() 

Jetzt brauche ich die (Kredit - Debit) zusammen.

etwas wie folgt aus:

detail [ 'profit' ] = df.groupby ('type') ([ 'credit' ] - [ 'debit' ]).sum() 

offensichtlich, dass nicht funktioniert.

Danke.

+0

Sie meinen 'df.groupby ('type') (['credit', 'debit']) .sum()' – Dark

+2

Warum nicht 'detail [' profit '] = detail [' credit '] - detail ['debit'] '? – IanS

+1

@IanS und wenden Sie die groupby danach (nur für Vollständigkeit) – EyJay

Antwort

0

Wie @IanS vorgeschlagen, würde ich zuerst das Ergebnis in einer neuen Spalte speichern und das groupby Funktion gelten danach:

df['profit'] = df['credit'] - df['debit'] 
detail = df.groupby('type').sum()[['profit', 'credit', 'debit']] 

Ich habe auch die groupby-Aktionen zu einem zusammengefasst.

+0

Bingo, dieser eine funktionierte. Vielen Dank! – diogenes

0

Haben Sie versucht:

detail [ 'profit' ] = sum(df.groupby ('type') [ 'credit' ] - df.groupby ('type') [ 'debit' ])