如何通过为每个单独的列列出分组后的所有数据并求和
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 groupbyfy2019.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
让我知道这是否有帮助,或者我是否可以进一步修改以提供更多帮助。谢谢!
【讨论】:
以上是关于如何通过为每个单独的列列出分组后的所有数据并求和的主要内容,如果未能解决你的问题,请参考以下文章