机器学习数据科学包(七)——Pandas高级内容:分组运算、聚合统计
分组计算
分组计算三步曲:拆分 -> 应用 -> 合并
- 拆分:根据什么进行分组?
- 应用:每个分组进行什么样的计算?
- 合并:把每个分组的计算结果合并起来。
对 Series 进行分组
通过索引对齐关联起来
对 DataFrame 进行分组
每个分组的元素个数
对分组进行迭代
转化为字典
按列分组
通过字典进行分组
通过函数来分组
当函数作为分组依据时,数据表里的每个索引(可以是行索引,也可以是列索引)都会调用一次函数,函数的返回值作为分组的索引,即相同的返回值分在同一组。
多级索引数据根据索引级别来分组
数据聚合
分组运算,先根据一定规则拆分后的数据,然后对数据进行聚合运算,如前面见到的 mean()
, sum()
等就是聚合的例子。聚合时,拆分后的第一个索引指定的数据都会依次传给聚合函数进行运算。最后再把运算结果合并起来,生成最终结果。
聚合函数除了内置的 sum()
, min()
, max()
, mean()
等等之外,还可以自定义聚合函数。自定义聚合函数时,使用 agg()
或 aggregate()
函数。
内置聚合函数
自定义聚合函数
应用多个聚合函数
给不同的列应用不同的聚合函数
使用 dict 作为参数来实现
重置索引
分组运算和转换
groupby 是特殊的分组运算。更一般的分组运算包括 “拆分 - 应用 - 合并”。这里介绍 transform()
和 apply()
来实现分组运算。
transform
距平化
与平均值的差异值
apply 函数
我们介绍过 DataFrame 的 apply 函数是逐行或逐列来处理数据。GroupBy 的 apply 函数对每个分组进行计算。