【发布时间】:2020-02-05 03:21:10
【问题描述】:
假设我有一个如下的数据框:
df = pd.DataFrame(np.array([[2018,'R1','C1',1],[2018,'R1','C2',2],[2018,'R1','C3',3],[2018,'R1','C4',4],[2018,'R1','C5',5],[2018,'R2','C6',6],[2018,'R2','C7',7],[2018,'R2','C8',8],[2018,'R2','C9',9],[2018,'R2','C10',10]]),columns=['Year', 'Region', 'Country', 'Spend'])
我想为每个可能的group by (groups) 添加摘要行,以便输出数据框如下所示:
我已经学会了如何根据StackOverflow post 将汇总/总计行添加为一列。但我想将这些总行合并到原始数据帧中,如上面的屏幕截图所示,我想用尽可能少的行来完成这一点(也就是说,避免像下面那样手动调用不同的groupby 组合):
df['ByYearTotalCount'] = df.groupby(['Year'])['Spend'].transform('sum')
df['ByYearByRegionTotalCount'] = df.groupby(['Year','Region'])['Spend'].transform('sum')
谁能帮我想出最好的pandas-like 方法来完成这个任务?提前感谢您的帮助!
【问题讨论】:
标签: python pandas aggregate pandas-groupby