一、聚合
任何能从数组产生标量值的过程。例如mean、count、min、max等之类的聚合函数。然而,并不是只能使用这些函数,任何在分组对象上已经定义好的方法,以及自己定义的聚合运算均可使用。
示例1:可利用quantile计算分组对象的分位数
---GroupBy会高效地对Series进行切片,然后对各片调用piece.quantile(),然后将这些结果拼接成最后结果。
示例2:describe方法(也可用于groupby对象,但严格来讲,其并非聚合运算)
示例3:使用自定义聚合函数
经过优化的聚合方法:
说明:自定义聚合函数要比上述经过优化的函数慢得多,这是因为在构造中间分组数据块时存在非常大的开销(函数调用、数据重排)
二、更高级的聚合功能:
主要介绍一次使用多个聚合函数,对不同的列使用不同的聚合函数等聚合功能。
2.1 单个函数应用于单个列
Note:经过优化的聚合函数,可以将函数名以字符串的形式传入
2.2 多个函数应用于单个列
Note:可以传入由(name,function)元组组成的列表,对最终结果进行重命名
2.3 多个函数应用于多个列
2.3 不同函数应用于不同列
补充:以“无索引”形式返回聚合结果
上述聚合结果都有由唯一的分组键形成的索引,如果不需要该索引,则可以向groupby中传入as_index=False,则分组将将作为聚合结果中的列而非索引。