Pandas Groupby总和列

时间:2017-12-08 08:59:44

标签: pandas pandas-groupby

我正在进行groupby并且可以获得列的总和,但是如何将两列的总和放在一起?

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

现在我需要(信用卡 - 借记卡)。

类似的东西:

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

显然这不起作用。

感谢。

2 个答案:

答案 0 :(得分:0)

你试过了吗?

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

答案 1 :(得分:0)

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

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

我还将groupby-actions合并为一个。