3. 分组级运算
agg/aggregate
只是分组级运算其中的一种。它接受一维数组,返回一个标量值。transform
是另一个分组级运算。它也接受一维数组。只能返回两种结果:要么是一个标量值(该标量值将被广播),或者一个相同大小的结果数组。- 你无法通过字典来对不同的列进行不同的
transform
GroupBy.transform(func, *args, **kwargs)
- 你无法通过字典来对不同的列进行不同的
apply
是另一个分组级运算。它是最一般化的分组级运算。它将待处理的对象拆分成多个片段,然后对各个片段调用传入的函数,最后尝试将各个片段组合到一起。GroupBy.apply(func, *args, **kwargs)
func
:运算函数。其第一个位置参数为待处理对象。其返回值是一个标量值或者pandas
对象。args/kwargs
是传递给func
的额外的位置参数与关键字参数。
对于
DataFrame
的.groupby
时,传递给func
的第一个参数是DataFrame
;对于Series
的.groupby
,传递给func
的第一个参数是Series
。pd.cut()/qcut()
函数返回的是Categorical
对象。我们可以用它作为.groupby()
的by
参数的值。这样可以实现桶分析。