我正在寻找分组依据的解决方案,然后在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']
有一种方法可以一步完成。谢谢。
答案 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