如何通过为每个单独的列列出分组后的所有数据并求和

Posted

技术标签:

【中文标题】如何通过为每个单独的列列出分组后的所有数据并求和【英文标题】:how to list all the data after group by and sum by making a sepreate column for each 【发布时间】:2020-03-06 14:35:21 【问题描述】:

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

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

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

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

【问题讨论】:

这能回答你的问题吗? How to move pandas data from index to column after multiple groupby fy2019.groupby(['Name'])['Expenses'].sum().astype(int).reset_index() “我有一个名为 fy2019 的数据集”所以你有单独的数据集(我猜是从不同的文件加载的)fy2018? 【参考方案1】:

你的意思是这样的:

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


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

【讨论】:

以上是关于如何通过为每个单独的列列出分组后的所有数据并求和的主要内容,如果未能解决你的问题,请参考以下文章

通过将两列分组并对第三列数据求和来过滤python

对最后一小时分组中的列值求和,然后将所有 5 的总和作为另一列中的总和

基于日期键的 SQL 求和列

在同一分组中添加具有上述所有行总和的列

如何将字符串字典转换为字典并拆分为单独的列

我如何基于单独的列变量求和?