pandas 索引和分组

索引

行索引
列索引
索引的分类
重复索引的处理
pandas 索引和分组pandas 索引和分组

重复索引

pandas 索引和分组
pandas 索引和分组

层次化索引

可以使数据在一个轴上有多个索引级别。即可以用二维的数据表达更高维度的数据,使数据组织方式更清晰。它使用 pd.MultiIndex 类来表示。

Series 多层索引

pandas 索引和分组
pandas 索引和分组

DataFrame 多层索引

pandas 索引和分组
pandas 索引和分组

索引交换及排序

pandas 索引和分组
pandas 索引和分组

按照索引级别进行统计

pandas 索引和分组

索引与列的转换

pandas 索引和分组
pandas 索引和分组

分组计算

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

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

对 Series 进行分组

pandas 索引和分组

对 DataFrame 进行分组

pandas 索引和分组

通过字典分组

pandas 索引和分组

通过函数来分组

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

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

pandas 索引和分组

数据聚合

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

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

内置聚合函数

pandas 索引和分组

自定义聚合函数

pandas 索引和分组

应用多个聚合函数

pandas 索引和分组

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

使用 dict 作为参数来实现
pandas 索引和分组

重置索引

pandas 索引和分组

分组运算和转换

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

transform

pandas 索引和分组

apply 函数

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

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

pandas 索引和分组