Pandas Groupby 求和到列

Pandas Groupby Sum to Columns

我正在做 groupby 并且可以得到一列的总和,但是我如何得到两列的总和?

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

现在我需要(贷方 - 借方)。

像这样:

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

显然那是行不通的。

谢谢。

你试过了吗:

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

就像@IanS 建议的那样,我会先将结果保存在一个新列中,然后再应用 groupby 函数:

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

我也把groupby-actions合二为一了