如何在Pandas透视表中添加各项目的整体均值列?
如何在Pandas透视表中添加整体均值列?
你可以通过两种方式实现需求:
方法一:直接在透视表中启用margins参数
Pandas的pivot_table自带margins参数,开启后会自动添加汇总列,指定margins_name可自定义列名:
df_total_pv = pd.pivot_table( df_total, index='Subject', columns='Judge', values=['item1','item2','item3'], aggfunc='mean', margins=True, # 启用汇总功能 margins_name='整体均值' # 自定义汇总列名称 )
该方法会直接在透视表最右侧添加整体均值列,自动计算每个Subject下对应item的所有评委得分平均值,完全匹配你的需求结构。
方法二:单独计算整体均值后合并(更灵活)
若需要自定义整体均值的计算逻辑,可单独计算后合并到原透视表:
- 先计算每个Subject下各item的整体均值:
df_overall_mean = df_total.groupby('Subject')[['item1','item2','item3']].mean().rename(columns=lambda x: (x, '整体均值'))
- 合并到原透视表:
df_total_pv = pd.concat([df_total_pv, df_overall_mean], axis=1)
这种方式支持对整体均值做更多自定义调整,比如加权平均等,适合复杂计算场景。
内容的提问来源于stack exchange,提问作者xiiais
相关产品推荐
相关产品推荐

