當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


Python pyspark DataFrameGroupBy.aggregate用法及代碼示例

本文簡要介紹 pyspark.pandas.groupby.DataFrameGroupBy.aggregate 的用法。

用法:

DataFrameGroupBy.aggregate(func_or_funcs: Union[str, List[str], Dict[Union[Any, Tuple[Any, …]], Union[str, List[str]]], None] = None, *args: Any, **kwargs: Any) → pyspark.pandas.frame.DataFrame

在指定軸上使用一項或多項操作進行聚合。

參數

func_or_funcs字典、字符串或列表

從列名(字符串)到聚合函數(字符串或字符串列表)的 dict 映射。

返回

係列或DataFrame

返回可以是:

  • 係列:當使用單個函數調用DataFrame.agg時

  • DataFrame:當使用多個函數調用DataFrame.agg時

返回係列或數據幀。

注意

aggaggregate 的別名。使用別名。

例子

>>> df = ps.DataFrame({'A': [1, 1, 2, 2],
...                    'B': [1, 2, 3, 4],
...                    'C': [0.362, 0.227, 1.267, -0.562]},
...                   columns=['A', 'B', 'C'])
>>> df
   A  B      C
0  1  1  0.362
1  1  2  0.227
2  2  3  1.267
3  2  4 -0.562

每列不同的聚合

>>> aggregated = df.groupby('A').agg({'B': 'min', 'C': 'sum'})
>>> aggregated[['B', 'C']].sort_index()  
   B      C
A
1  1  0.589
2  3  0.705
>>> aggregated = df.groupby('A').agg({'B': ['min', 'max']})
>>> aggregated.sort_index()  
     B
   min  max
A
1    1    2
2    3    4
>>> aggregated = df.groupby('A').agg('min')
>>> aggregated.sort_index()  
     B      C
A
1    1  0.227
2    3 -0.562
>>> aggregated = df.groupby('A').agg(['min', 'max'])
>>> aggregated.sort_index()  
     B           C
   min  max    min    max
A
1    1    2  0.227  0.362
2    3    4 -0.562  1.267

為了控製每列具有不同聚合的輸出名稱,pandas-on-Spark 還支持“命名聚合”或 .agg 中的嵌套重命名。當將多個聚合函數應用於特定列時,也可以使用它。

>>> aggregated = df.groupby('A').agg(b_max=ps.NamedAgg(column='B', aggfunc='max'))
>>> aggregated.sort_index()  
     b_max
A
1        2
2        4
>>> aggregated = df.groupby('A').agg(b_max=('B', 'max'), b_min=('B', 'min'))
>>> aggregated.sort_index()  
     b_max   b_min
A
1        2       1
2        4       3
>>> aggregated = df.groupby('A').agg(b_max=('B', 'max'), c_min=('C', 'min'))
>>> aggregated.sort_index()  
     b_max   c_min
A
1        2   0.227
2        4  -0.562

相關用法


注:本文由純淨天空篩選整理自spark.apache.org大神的英文原創作品 pyspark.pandas.groupby.DataFrameGroupBy.aggregate。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。