pivot_table用于生成行列交叉的报表式汇总表,groupby用于灵活分组聚合;前者适合“行×列→值”结构,后者适合链式操作与复杂筛选。

用 Python 做数据分组统计,pivot_table 和 groupby 是最常用也最容易混淆的两个工具。它们目标相似——聚合、汇总、重塑,但适用场景和底层逻辑不同。选对方法,代码更简洁、结果更可控;用反了,容易绕弯子、出错或性能变差。
groupby 的核心是“分组 → 应用函数 → 合并”。它不改变原始结构,而是把数据按指定列拆成若干子集,再对每个子集独立计算(比如求均值、计数、自定义函数)。
df.groupby(['city', 'year'])['sales'].sum().reset_index()
.agg({'sales': 'sum', 'profit': ['mean', 'max']})
apply),扩展性强pivot_table 更像 Excel 的数据透视表,本质是“行×列→值”的二维(或三维)汇总视图。它自动完成分组、展开、填充缺失值等步骤,输出结构规整的表格。
index(行)、columns(列)、values(数值)和 aggfunc(聚合方式)NaN),可用 fill_value 替换,比手动 unstack 更省心pivot_table(index=['A','B'], columns='C', values=['X','Y'], aggfunc='sum')
判断的关键不是“功能强弱”,而是你想要的结果长什么样:
立即学习“Python免费学习笔记(深入)”;
city → total_sales),用 groupby
pivot_table
groupby + filter 或布尔索引更直接groupby 结果转成透视结构?可以接 .unstack(),但不如 pivot_table 简洁鲁棒底层上,pivot_table 就是先 groupby 再 unstack 的封装。比如:
等价于:
df.groupby(['region', 'product'])['sales'].sum().unstack(fill_value=0)理解这点,就能在调试时快速切换写法,也能避免被 pivot_table 的参数绕晕。
以上就是Python数据分组统计_pivot_table与groupby实战解析【技巧】的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号