DataFrame.aggregate(func, axis=0, *args, **kwargs)
使用指定axis上的一个或多个操作聚合。
新版本0.20.0
参数: | func : 函数,用于聚合数据。如果是函数, 则必须在传递 或传递到 接受的组合是: function string function name list of functions 和/或 function names, 例如, [np.sum, 'mean'] axis labels的 或 axis : {0 or ‘index’, 1 或 ‘columns’}, 默认 如果0或' index ':应用函数到每一列。 如果1或‘columns’:应用函数到每一行。 *args 要传递给 **kwargs 要传递给 |
返回: |
如果使用单个函数调用 则返回Series, 如果使用多个函数调用 如果使用单个函数调用 则返回 如果使用多个函数调用 返回一个 聚合操作总是在轴上执行, 或者是 index(默认)或列轴。 这种行为不同于
(
数组,例如 而不是
使用别名。 |
注意:
agg
是聚合的别名。使用别名。
传递的用户定义函数将被传递一Series用于求值。
例如,
1)对单个列应用单个聚合函数
import pandas as pd data = { 'A': [1, 2, 3, 4], 'B': [10, 20, 30, 40], 'C': [100, 200, 300, 400] } df = pd.DataFrame(data) # 对列 'A' 应用 'sum' 聚合函数 result = df['A'].aggregate('sum') print(result)
2)对多个列应用单个聚合函数
import pandas as pd data = { 'A': [1, 2, 3, 4], 'B': [10, 20, 30, 40], 'C': [100, 200, 300, 400] } df = pd.DataFrame(data) # 对整个 DataFrame 应用 'sum' 聚合函数 result = df.aggregate('sum') print(result)
3)对单个列应用多个聚合函数
import pandas as pd data = { 'A': [1, 2, 3, 4], 'B': [10, 20, 30, 40], 'C': [100, 200, 300, 400] } df = pd.DataFrame(data) # 对列 'A' 应用 'sum' 和 'mean' 聚合函数 result = df['A'].aggregate(['sum', 'mean']) print(result)
4)对多个列应用多个聚合函数
import pandas as pd data = { 'A': [1, 2, 3, 4], 'B': [10, 20, 30, 40], 'C': [100, 200, 300, 400] } df = pd.DataFrame(data) # 对列 'A' 和 'B' 应用 'sum' 和 'mean' 聚合函数 result = df.aggregate({ 'A': ['sum', 'mean'], 'B': ['min', 'max'] }) print(result)
5)对整个 DataFrame 应用自定义聚合函数
import pandas as pd data = { 'A': [1, 2, 3, 4], 'B': [10, 20, 30, 40], 'C': [100, 200, 300, 400] } df = pd.DataFrame(data) # 定义一个自定义聚合函数 def custom_agg(x): return x.max() - x.min() # 对整个 DataFrame 应用自定义聚合函数 result = df.aggregate(custom_agg) print(result)
6)使用示例
import pandas as pd import numpy as np # 创建DataFrame df = pd.DataFrame([[1, 2, 3], [4, 5, 6], [7, 8, 9], [np.nan, np.nan, np.nan]], columns=['A', 'B', 'C']) # 在行上聚合这些函数 print(df.agg(['sum', 'min'])) # 输出: # A B C # sum 12.0 15.0 18.0 # min 1.0 2.0 3.0 # 每个列有不同的聚合 print(df.agg({'A': ['sum', 'min'], 'B': ['min', 'max']})) # 输出: # A B # max NaN 8.0 # min 1.0 2.0 # sum 12.0 NaN # 对列进行聚合 print(df.agg("mean", axis="columns")) # 输出: # 0 2.0 # 1 5.0 # 2 8.0 # 3 NaN # dtype: float64