集合仅是分组运算的一种而已,是数据转换的一个特例(将一维数组转化为标量值的函数)。
本节将介绍transform与apply方法,以便执行更多的分组运算。
一、transform(有严格条件的特殊函数)
- 完成sql中类似窗口函数功能
- 传入的函数只能产生两种结果:
- 产生一个可以广播的标量值
- 产生一个大小相同的结果数组
二、apply(最一般化的GroupBy方法)
- 将待处理的对象拆分成多个片段
- 对各片段调用传入的函数
- 最后尝试将各片段组合到一起
Note:能否充分发挥apply的威力,很大程度上取决于你的创造力。
三、分位数和桶分析
pandas中有一些能根据指定面元或样本分位数将数据拆分成多块的工具,将这些函数跟groupby结合起来,就能够非常轻松地实现对数据集的桶(bucket)和分位数(quantile)分析。
- 长度相等的桶(cut)
- 大小相等的桶(qcut)