3. 分组级运算

  1. agg/aggregate只是分组级运算其中的一种。它接受一维数组,返回一个标量值。

  2. transform是另一个分组级运算。它也接受一维数组。只能返回两种结果:要么是一个标量值(该标量值将被广播),或者一个相同大小的结果数组。

    • 你无法通过字典来对不同的列进行不同的transform
    1. GroupBy.transform(func, *args, **kwargs)

    GroupBy_transform

  3. apply是另一个分组级运算。它是最一般化的分组级运算。它将待处理的对象拆分成多个片段,然后对各个片段调用传入的函数,最后尝试将各个片段组合到一起。

    1. GroupBy.apply(func, *args, **kwargs)
    • func:运算函数。其第一个位置参数为待处理对象。其返回值是一个标量值或者pandas对象。
    • args/kwargs是传递给func的额外的位置参数与关键字参数。

    对于DataFrame.groupby时,传递给func的第一个参数是DataFrame;对于Series.groupby,传递给func的第一个参数是Series

    GroupBy_apply

  4. pd.cut()/qcut()函数返回的是Categorical对象。我们可以用它作为.groupby()by参数的值。这样可以实现桶分析。 GroupBy_cut