机器学习数据科学包(七)——Pandas高级内容:分组运算、聚合统计

机器学习数据科学包(七)——Pandas高级内容:分组运算、聚合统计

分组计算

分组计算三步曲:拆分 -> 应用 -> 合并

  • 拆分:根据什么进行分组?
  • 应用:每个分组进行什么样的计算?
  • 合并:把每个分组的计算结果合并起来。

机器学习数据科学包(七)——Pandas高级内容:分组运算、聚合统计

机器学习数据科学包(七)——Pandas高级内容:分组运算、聚合统计

对 Series 进行分组

通过索引对齐关联起来

机器学习数据科学包(七)——Pandas高级内容:分组运算、聚合统计

对 DataFrame 进行分组

机器学习数据科学包(七)——Pandas高级内容:分组运算、聚合统计

每个分组的元素个数

机器学习数据科学包(七)——Pandas高级内容:分组运算、聚合统计

对分组进行迭代

机器学习数据科学包(七)——Pandas高级内容:分组运算、聚合统计

转化为字典

机器学习数据科学包(七)——Pandas高级内容:分组运算、聚合统计

按列分组

机器学习数据科学包(七)——Pandas高级内容:分组运算、聚合统计

通过字典进行分组

机器学习数据科学包(七)——Pandas高级内容:分组运算、聚合统计

机器学习数据科学包(七)——Pandas高级内容:分组运算、聚合统计

通过函数来分组

当函数作为分组依据时,数据表里的每个索引(可以是行索引,也可以是列索引)都会调用一次函数,函数的返回值作为分组的索引,即相同的返回值分在同一组。

机器学习数据科学包(七)——Pandas高级内容:分组运算、聚合统计

机器学习数据科学包(七)——Pandas高级内容:分组运算、聚合统计

多级索引数据根据索引级别来分组

机器学习数据科学包(七)——Pandas高级内容:分组运算、聚合统计

数据聚合

分组运算,先根据一定规则拆分后的数据,然后对数据进行聚合运算,如前面见到的 mean()sum() 等就是聚合的例子。聚合时,拆分后的第一个索引指定的数据都会依次传给聚合函数进行运算。最后再把运算结果合并起来,生成最终结果。

聚合函数除了内置的 sum()min()max()mean() 等等之外,还可以自定义聚合函数。自定义聚合函数时,使用 agg() 或 aggregate() 函数。

内置聚合函数

机器学习数据科学包(七)——Pandas高级内容:分组运算、聚合统计

自定义聚合函数

机器学习数据科学包(七)——Pandas高级内容:分组运算、聚合统计

应用多个聚合函数

机器学习数据科学包(七)——Pandas高级内容:分组运算、聚合统计

给不同的列应用不同的聚合函数

使用 dict 作为参数来实现

机器学习数据科学包(七)——Pandas高级内容:分组运算、聚合统计

重置索引

机器学习数据科学包(七)——Pandas高级内容:分组运算、聚合统计

分组运算和转换

groupby 是特殊的分组运算。更一般的分组运算包括 “拆分 - 应用 - 合并”。这里介绍 transform() 和 apply() 来实现分组运算。

transform

机器学习数据科学包(七)——Pandas高级内容:分组运算、聚合统计

机器学习数据科学包(七)——Pandas高级内容:分组运算、聚合统计

距平化

与平均值的差异值

机器学习数据科学包(七)——Pandas高级内容:分组运算、聚合统计

apply 函数

我们介绍过 DataFrame 的 apply 函数是逐行或逐列来处理数据。GroupBy 的 apply 函数对每个分组进行计算。

机器学习数据科学包(七)——Pandas高级内容:分组运算、聚合统计

机器学习数据科学包(七)——Pandas高级内容:分组运算、聚合统计

apply 应用示例:用不同的分组平均值填充空缺数据

机器学习数据科学包(七)——Pandas高级内容:分组运算、聚合统计