
296
|
第
10
章
10.1 GroupBy
机制
Hadley Wickham
(
R
语言中许多热门包的作者)创造了一个用于描述分组运算的术语“拆
分-应用-联合”(
split-apply-combine
)。首先,
pandas
对象(无论是
Series
、
DataFrame
还是其他)中的数据会根据你所提供的单键或多键拆分为多组。拆分操作是在对象的特
定轴上执行的。例如,
DataFrame
可以在其行(axis="index")或列(axis="columns")
上进行分组。其次,将一个函数应用到各个分组,并产生一个新值。最后,所有这些函
数的执行结果会联合为最终的结果对象。结果对象的形式一般取决于对数据所执行的操
作。图
10-1
对简单的聚合过程做了大致说明。
图 10-1:分组聚合图示
每个分组键可以有多种形式,并且类型不必相同:
·
值列表或值数组,其长度与待分组的轴一样。
·
在 DataFrame 中指明列名的值。
·
字典或 Series,给出待分组轴上的值与分组名之间的对应关系。
·
可以在轴索引或索引各标签上调用的函数。
注意,后三种都是快捷方式,用于产生一组用于拆分对象的值数组。如果觉得它们看起
来很抽象,也不用担心,本章将给出与这些方法有关的大量示例。首先来看下面这个