对数据集进行分类并将函数应用于每个组(无论是聚合还是转换)是数据分析工作流程的关键组成部分。加载、合并和准备数据集后,需要按组统计数据或计算数据透视表,以便进行报告或可视化。pandas 提供了多功能的 GroupBy 界面,使我们能够以很自然的方式对数据集进行切片、切块和汇总。
关系数据库和 SQL(代表“结构化查询语言”)流行的一个原因是数据可以轻松连接、筛选、转换和聚合。但是,SQL 等查询语言对执行按组操作不是很善长。但使用 Python 和 pandas ,我们可以自定义 Python 函数来执行相当复杂的组操作。下面我会学习以下内容:
- 使用一个或多个键(以函数、数组或 DataFrame 列名的形式)将 pandas 对象拆分为多个部分
- 按组计算汇总统计数据,如计数、平均值、标准差,或通过我们自定义的函数来实现
- 学习应用组内转换等操作,如归一化、线性回归、排名或子集选择
- 计算数据透视表和交叉表
- 执行分位数分析以及其他统计组分析
分组操作
Hadley Wickham 开发了很多流行的 R 编程语言的工具包,他创造了术语 split-apply-combine 来描述组操作。在该过程的第一阶段,pandas 对象中包含的数据(无论是 Series、DataFrame 还是其他)将根据我们提供的一个或多个键拆分为多个组,在对象的特定轴