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合二为一了
我正在做 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合二为一了