maxframe.dataframe.groupby.GroupBy.aggregate#
- GroupBy.aggregate(func=None, method='auto', *args, **kwargs)#
对分组数据使用一个或多个操作进行聚合。
- 参数:
groupby (MaxFrame Groupby) -- 分组数据。
func (str or list-like) -- 聚合函数。
method ({'auto', 'shuffle', 'tree'}, default 'auto') -- 'tree' 方法提供更好的性能,如果聚合结果非常大,推荐使用 'shuffle','auto' 将在分布式模式下使用 'shuffle' 方法,在本地模式下使用 'tree'。
- 返回:
聚合结果。
- 返回类型:
示例
>>> import maxframe.dataframe as md >>> df = md.DataFrame( ... { ... "A": [1, 1, 2, 2], ... "B": [1, 2, 3, 4], ... "C": [0.362838, 0.227877, 1.267767, -0.562860], ... } ... ).execute() A B C 0 1 1 0.362838 1 1 2 0.227877 2 2 3 1.267767 3 2 4 -0.562860
聚合是对每一列进行的。
>>> df.groupby('A').agg('min').execute() B C A 1 1 0.227877 2 3 -0.562860
多次聚合。
>>> df.groupby('A').agg(['min', 'max']).execute() B C min max min max A 1 1 2 0.227877 0.362838 2 3 4 -0.562860 1.267767
每列不同的聚合
>>> df.groupby('A').agg({'B': ['min', 'max'], 'C': 'sum'}).execute() B C min max sum A 1 1 2 0.590715 2 3 4 0.704907
为了控制每列不同聚合的输出名称,MaxFrame 支持“命名聚合”
>>> from maxframe.dataframe import NamedAgg >>> df.groupby("A").agg( ... b_min=NamedAgg(column="B", aggfunc="min"), ... c_sum=NamedAgg(column="C", aggfunc="sum")).execute() b_min c_sum A 1 1 0.590715 2 3 0.704907