我有一个数据框,我在3列上进行groupby并聚合数值列的总和和大小 . 运行代码后
df = pd.DataFrame.groupby(['year','cntry', 'state']).agg(['size','sum'])
我得到的东西如下:
现在我想从主列拆分大小子列并仅创建单个大小的列,但希望将总和列保留在主列 Headers 下 . 我尝试了不同的方法,但没有成功 . 这些是我尝试过但无法让事情适合我的方法:
How to count number of rows in a group in pandas group by object?
Converting a Pandas GroupBy object to DataFrame
如果有人能帮我这个,我将不胜感激 .
问候,
2 回答
Setup
Answer
最简单的方法是在
groupby
后才能运行size
要使用计算的
df
如果每列的
size
不同,那将非常有用 . 但因为size
列与['Col1', 'Col2', 'Col3']
相同,我们可以这样做Combined View 1
Combined View 2
piRSquared打败了它,但是如果你必须这样做,并希望保持与列的对齐,并且总和或大小在下面你可以重新索引列以删除大小值,然后添加一个新列以包含大小值 .
例如:
最终看起来像这样: