Python中Pivot Table仅显示列总计,如何添加行总计?
解决Pivot Table显示行总计的问题
你当前设置的margins=True是用来添加所有分组的汇总行(也就是输出里的All行),这是列维度的总计。如果要显示每行的各列数值总和(行总计),可以在生成透视表后手动添加总计列:
import pandas as pd test = pd.DataFrame( [['a1', 1, 1, 11], ['a1', 2, 3, 12], ['a1', 3, 5, 13], ['a2', 4, 7, 14], ['a2', 5, 9, 15], ['b', 6, 2, 16], ['c', 7, 4, 17]], columns=['ID1', 'Value1', 'Value2', 'Value3'] ) # 生成带分组汇总行的透视表 pivot_result = test.pivot_table(values=['Value1', 'Value2'], index=['ID1'], aggfunc='sum', margins=True) # 添加行总计列,对每行的数值列求和 pivot_result['行总计'] = pivot_result.sum(axis=1) print(pivot_result)
运行后输出会包含行总计列,每行的数值就是对应行Value1和Value2的总和,包括All行的总计:
Value1 Value2 行总计 ID1 a1 6 9 15 a2 9 16 25 b 6 2 8 c 7 4 11 All 28 31 59
如果想调整行总计列的位置,比如放到最前面,可以用insert方法:
# 先计算行总计,再插入到第0位 total_col = pivot_result.sum(axis=1) pivot_result.insert(0, '行总计', total_col)
内容的提问来源于stack exchange,提问作者LaTeXFan
相关产品推荐
相关产品推荐

