熊猫汇总两列的总和,并将其作为一列

时间:2019-11-19 02:28:35

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

我正在寻找分组依据的解决方案,然后在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']

有一种方法可以一步完成。谢谢。

1 个答案:

答案 0 :(得分: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