8分钟
GroupBy对象2
4. 如果你希望使用自己的聚合函数,只需要将其传入.aggregate(func, *args, **kwargs)
或者.agg()
方法即可。其中func
接受一维数组,返回一个标量值。
- 注意:自定义聚合函数会慢得多。这是因为在构造中间分组数据块时存在非常大的开销(函数调用、数据重排等)
- 你可以将前面介绍的
GroupBy
的统计函数名以字符串的形式传入。 - 如果你传入了一组函数或者函数名,则得到的结果中,相应的列就用对应的函数名命名。如果你希望提供一个自己的名字,则使用
(name,function)
元组的序列。其中name
用作结果列的列名。 - 如果你希望对不同的列采用不同的聚合函数,则向
agg()
传入一个字典。字典的键就是列名,值就是你希望对该列采用的函数。
5. .get_group(key)
可以获取分组键对应的数据。
key
:不同的分组就是依靠它来区分的
6. GroupBy
的下标操作将获得一个只包含源数据中指定列的新GroupBy
对象
7. GroupBy
类定义了__getattr__()
方法,当获取GroupBy
中未定义的属性时:
- 如果属性名是源数据对象的某列的名称则,相当于
GroupBy[name]
,即获取针对该列的GroupBy
对象 - 如果属性名是源数据对象的方法,则相当于通过
.apply(name)
对每个分组调用该方法。
学员评价