【问题标题】:pandas aggregate sum of two columns and make it as one column熊猫汇总两列的总和并将其作为一列
【发布时间】:2019-11-19 02:28:35
【问题描述】:

我正在寻找分组的解决方案,然后在 pandas 数据框中找到两列的总和并显示为一列。

每行的净值和总和列,并添加一个新列“总计”作为两者的总和。

示例数据集如下

    Name  state    Net  Gross
    A1    TN       100     60
    A2    AP       200     40
    A3    KAR      300     -10 
    A1    TN       10      60
    A2    AP       20      40
    A3    KAR      10     -10 

预期输出

    Name  state    Total Amount
    A1    TN       230     
    A2    AP       300     
    A3    KAR      290      

我已经尝试了如下两个步骤

df2 = df1.groupby(['Name', 'State', ]).agg({'Net': 'sum', 'Gross':'sum'})
df2['Total Amount'] = df2['Net'] + df2['Gross']

有没有办法一步完成。谢谢。

【问题讨论】:

    标签: python-3.x pandas sum aggregate multiple-columns


    【解决方案1】:

    一步我们可以先做melt

    df.melt(['Name','state']).groupby(['Name','state']).value.sum().reset_index()
    Out[56]: 
      Name state  value
    0   A1    TN    230
    1   A2    AP    300
    2   A3   KAR    290
    

    【讨论】:

      猜你喜欢
      • 2017-06-23
      • 2018-05-08
      • 2022-01-07
      • 2014-11-03
      • 2021-10-05
      • 1970-01-01
      • 2023-01-03
      • 1970-01-01
      • 2012-03-02
      相关资源
      最近更新 更多