第 4 章 汤锅区:分组、聚合与统计计算


第 4 章 · 汤锅区:分组、聚合与统计计算

本章要回答的问题:为什么同样一份数据,有人算出的指标总是对不上?分组聚合的"拆、算、合"到底拆了什么、合了什么?累计、滚动、条件取值这三类"边走边算"的活,各用什么函数、什么参数?本章围着汤锅把这几问炖透。

为什么会有这一章

切配台上料是切好了,但报表要的是"华东区月均单量""最近七天滚动销售额""超标订单的标记"——这些数字没有一行能直接从原料里挑出来,都得下锅熬:把数据按组拆开,各自算完,再把结果合并回来。汤锅区是整间教室里"出味道"的地方:groupby 是主灶,describe 是一锅出的快手汤,rolling 是文火慢煨,np.where 是尝味后的最后调味。与讲统计理论的教材不同,本章只关心一件事——每个函数怎么用、参数怎么拧、什么时候会煳锅。

这一章的手法有一个共同底座:向量化。汤锅里没有 Python 循环的位置,凡是你想写 for 循环逐行算的地方,多半都有一味现成的汤料。底座之外的另一条暗线是"对齐"——分组键对齐、窗口边界对齐、条件分支对齐,汤的口味准不准,全看对齐功夫。

读完能解决什么

  • 聚合能力:用 groupby 完成单键与多键分组,用 agg 一次产出多个统计量,说清 split-apply-combine 各阶段发生了什么;
  • 速算能力:用 describe 一次拿到整表描述统计,会解释 count 与 size、ddof 口径差异;
  • 滚动能力:用 cumsum 与 rolling 完成累计与窗口计算,理解窗口边界与 min_periods 的行为;
  • 调味能力:用 np.where、np.select、clip 完成条件取值与截断,写出清晰的分支逻辑。

可考核知识点清单:groupby 后选择列的两种写法与 KeyError 的来历;agg 传列表、传字典、命名聚合三种形态;transform 与 apply 在"结果回填原表"场景的分工;describe 对数值列与非数值列的默认取舍;rolling 的 window 与 min_periods 联动;ewm 与 expanding 各自的窗口观;np.where 三参数的顺序语义;df.where 与 np.where 条件方向相反这件事;clip 与 2.2 截尾的呼应。

各节怎么分工

节 回答哪个问题 关键产出
4.1 分组聚合 分组指标怎么算对 拆算合三步与 agg 形态
4.2 描述性统计 一眼看清数什么样 describe 与统计量族
4.3 累计与滚动窗口 边走边算怎么算 cumsum 与 rolling 手法
4.4 条件计算 按条件变值怎么写 where select clip 三件

常见疑问

**问:聚合与透视表什么关系?**4.1 的 groupby 是本体,5.3 的 pivot_table 是它的二维报表皮肤——同一笔账两种摆法。本章先把 groupby 的拆算合吃透,摆盘区的透视表就只是换个姿势。

**问:不讲统计理论,那 describe 算什么?**算"工具用法"。本章关心的是 describe 怎么调、输出怎么读、口径(比如标准差的 ddof)差在哪,至于这些统计量背后的估计理论,本册一概不展开——需要时另配方法论专册。

**问:rolling 与 groupby 什么时候叠加使用?**当你听到"每个门店各自的近七天均值"这类需求时——分组保证组间不串味,滚动保证窗口正确。4.3 末尾给了标准写法,注意它返回多层索引,取数前先想清楚层级。

先决条件

  • 完成第 3 章:会筛选会排序——聚合前的分组键就该切配干净;
  • 时间列已转成时间类型,3.4 的 to_period 会直接用在 4.3;
  • 知道 NaN 与多数聚合函数"自动跳过"的默契,细节本章展开。

往下走到哪

汤熬好就该装盘:第 5 章摆盘区负责 merge 合并、pivot 重塑与汇总报表。本章 4.1 的分组结果会在 5.3 与 pivot_table 殊途同归;4.3 的滚动列在 8.5 的流水线实战里会作为特征列原样出现。

作者与出处
原作者:灏天文库
来源:平台策划编纂
整理人: 灏天文库整理
由灏天文库平台收录,内容或由平台用户上传,仅供学习交流
发布者: 作者: 灏天文库 转发
评论区 (0)
U