pandas.pivot_table中margins=True参数功能及计算逻辑解析
关于pandas pivot_table中margins=True参数的说明
参数作用
设置margins=True后,透视表会自动添加一行名为“All”的汇总行和一列名为“All”的汇总列,用来展示全量数据的统计结果(这里默认聚合函数是mean,所以是均值),无需额外编写代码计算全局统计值,方便快速对比分组统计和整体统计的差异。
“All”行/列的计算逻辑
因为默认聚合是mean,所有“All”相关的单元格都是基于原始数据集的对应样本计算,而非对分组统计结果再做二次聚合:
- “All”列:每一行的“All”单元格,是该行对应分组(即
time+day的组合)下所有样本(不管smoker取值)的字段均值。比如time='Lunch', day='Fri'行的“All”列tip_pct,是所有午餐周五聚餐的样本(抽烟+不抽烟)的小费比例均值。 - “All”行:每一列的“All”单元格,是该列对应分组(即
smoker='Yes'或smoker='No')下所有样本(不管time和day)的字段均值。比如smoker='Yes'列的“All”行size,是所有抽烟顾客的聚餐人数均值。 - 右下角的“All”单元格:对应字段的全局均值,即整个
tips数据集所有样本的字段均值,和直接执行tips[['tip_pct','size']].mean()的结果完全一致。
内容的提问来源于stack exchange,提问作者Victor
相关产品推荐
相关产品推荐

