首页 > 解决方案 > 如何通过为每个单独的列列出分组后的所有数据并求和

问题描述

我有一个名为 fy2019 的数据集,其中包含列

在此处输入图像描述

我想按名称分组并根据名称将费用相加。我这样做了。它工作得很好。

费用= (fy2019.groupby(['Name'])['Expenses'].sum()).map(int) Expenses_2018= (fy2018.groupby(['Name'])['Expenses'].sum() ).map(int) 费用

但是,当我显示费用时,它会在一列中显示形状(4,)。分组和求和后如何使它成为两列?此外,我想获取 2018 年的费用清单,并制作一个包含 Name、Expenses_2019 和 Expenses_2018 的表格

标签: pythonpandas

解决方案


你的意思是这样的:

data = [['Jack', 100], ['Jack', 200], ['Jum', 35],['Brad', 60], ['Brad', 50], ['Anil', 70],['Anil', 90]]  

test = pd.DataFrame(data, columns = ['Name', 'Expenses']) 

test.groupby(df.Name).sum()

test
Out[449]: 
      Expenses
Name          
Anil       160
Brad       110
Jack       300
Jum         35

这也应该适用于添加的列。

data = [['Jack', 0, 100], ['Jack', 200, 0], ['Jum', 35, 0],['Brad', 0, 60], ['Brad', 0, 50], ['Anil', 0, 70],['Anil', 90, 0],['Anil', 110, 0]]  

test = pd.DataFrame(data, columns = ['Name', 'Expenses_2018', 'Expenses_2019']) 

test = test.groupby(test.Name).sum()

test

      Expenses_2018  Expenses_2019
Name                              
Anil            200             70
Brad              0            110
Jack            200            100
Jum              35              0


让我知道这是否有帮助,或者我是否可以进一步修改以提供更多帮助。谢谢!


推荐阅读