【问题标题】:Pandas Groupby Sum to ColumnsPandas Groupby 总和到列
【发布时间】:2017-12-08 18:52:21
【问题描述】:

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

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

现在我需要(贷记 - 借记)一起。

类似这样的:

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

显然这不起作用。

谢谢。

【问题讨论】:

  • 你的意思是df.groupby ( 'type' ) ( [ 'credit' , 'debit'] ).sum ()
  • 为什么不detail [ 'profit' ] = detail [ 'credit' ] - detail [ 'debit' ]
  • @IanS 然后应用 groupby(只是 fpr 完整性)
  • @EyJay 好主意,你应该把它作为答案

标签: pandas pandas-groupby


【解决方案1】:

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

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

我还将 groupby-actions 合二为一。

【讨论】:

    【解决方案2】:

    你试过了吗:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-04
      • 2019-06-08
      • 1970-01-01
      • 2019-08-11
      相关资源
      最近更新 更多