You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中如何用aggfunc先按索引求均值再按列求和构建透视表?

高效实现先均值后求和的透视表需求

不需要两次连续透视表,直接通过分组聚合+列求和的方式就能高效完成,步骤如下:

1. 核心思路

先按标签列分组计算各数值列的均值,再对这些均值结果按列求和——全程仅需两次轻量运算,比两次透视表的开销小得多。

2. 代码示例

假设你的DataFrame包含标签列(比如category)和若干数值列:

构造示例数据

import pandas as pd

df = pd.DataFrame({
    'category': ['A', 'A', 'B', 'B', 'C'],
    'col1': [10, 20, 30, 40, 50],
    'col2': [5, 15, 25, 35, 45]
})

一步完成计算

直接链式调用分组均值和列求和:

# 先按标签算均值,再对均值按列求和
result = df.groupby('category').mean().sum()

如果需要保留每个标签的均值,同时添加总计行(所有均值的和):

# 生成各标签的均值透视表
pivot_means = df.pivot_table(index='category', aggfunc='mean')
# 计算总计行
total_row = pd.DataFrame(pivot_means.sum()).T
total_row.index = ['Total']
# 合并结果
final_result = pd.concat([pivot_means, total_row])

3. 效率优势

两次透视表会重复处理原始数据,而groupby+mean仅做一次聚合,后续的sum是对聚合后的小数据集操作,在数据量较大时,性能提升会非常明显。

内容的提问来源于stack exchange,提问作者Nic_bar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 04:00:58