贝利信息

Python数据分组统计_pivot_table与groupby实战解析【技巧】

日期:2025-12-22 00:00 / 作者:舞夢輝影
pivot_table用于生成行列交叉的报表式汇总表,groupby用于灵活分组聚合;前者适合“行×列→值”结构,后者适合链式操作与复杂筛选。

用 Python 做数据分组统计,pivot_tablegroupby 是最常用也最容易混淆的两个工具。它们目标相似——聚合、汇总、重塑,但适用场景和底层逻辑不同。选对方法,代码更简洁、结果更可控;用反了,容易绕弯子、出错或性能变差。

groupby:按列“切片+聚合”,适合灵活计算

groupby 的核心是“分组 → 应用函数 → 合并”。它不改变原始结构,而是把数据按指定列拆成若干子集,再对每个子集独立计算(比如求均值、计数、自定义函数)。

pivot_table:按行列“交叉汇总”,适合报表式展示

pivot_table 更像 Excel 的数据透视表,本质是“行×列→值”的二维(或三维)汇总视图。它自动完成分组、展开、填充缺失值等步骤,输出结构规整的表格。

什么时候该用哪个?看输出结构和需求

判断的关键不是“功能强弱”,而是你想要的结果长什么样:

一个小技巧:pivot_table 其实是 groupby 的语法糖

底层上,pivot_table 就是先 groupbyunstack 的封装。比如:

df.pivot_table(index='region', columns='product', values='sales', aggfunc='sum')

等价于:

df.groupby(['region', 'product'])['sales'].sum().unstack(fill_value=0)

理解这点,就能在调试时快速切换写法,也能避免被 pivot_table 的参数绕晕。