pandas.DataFrame.agg#

DataFrame.agg(func=None, axis=0, *args, **kwargs)[源代码]#

沿指定轴使用一个或多个操作进行聚合。

Parameters:
funcfunction, str, list 或 dict

用于聚合数据的函数。如果是函数,则必须能在传递 DataFrame 时工作,或者能在传递给 DataFrame.apply 时工作。

可接受的组合有:

  • function

  • 字符串函数名

  • 函数和/或函数名的列表,例如 [np.sum, 'mean']

  • 轴标签 -> 函数、函数名或其列表的字典。

axis{0 或 ‘index’, 1 或 ‘columns’}, default 0

如果为 0 或 ‘index’:对每列应用函数。如果为 1 或 ‘columns’:对每行应用函数。

*args

传递给 func 的位置参数。

**kwargs

传递给 func 的关键字参数。

Returns:
scalar, Series 或 DataFrame

返回值可以是:

  • scalar :当 Series.agg 用单个函数调用时

  • Series :当 DataFrame.agg 用单个函数调用时

  • DataFrame :当 DataFrame.agg 用多个函数调用时

参见

DataFrame.apply

执行任何类型的操作。

DataFrame.transform

执行转换类型的操作。

pandas.DataFrame.groupby

对组执行操作。

pandas.DataFrame.resample

对重采样分箱执行操作。

pandas.DataFrame.rolling

在滚动窗口上执行操作。

pandas.DataFrame.expanding

在扩展窗口上执行操作。

pandas.core.window.ewm.ExponentialMovingWindow

在指数加权窗口上执行聚合操作。

Notes

聚合操作始终在某个轴上执行,可以是索引轴(默认)或列轴。此行为与 numpy 聚合函数(meanmedianprodsumstdvar)不同,后者默认计算展平数组的聚合,例如 numpy.mean(arr_2d) 而不是 numpy.mean(arr_2d, axis=0)

aggaggregate 的别名。请使用别名。

修改传入对象的函数可能会导致意外行为或错误,因此不受支持。有关详细信息,请参阅 使用用户定义函数 (UDF) 方法进行变异

传入的用户定义函数将接收一个 Series 进行计算。

Examples

>>> df = pd.DataFrame([[1, 2, 3],
...                    [4, 5, 6],
...                    [7, 8, 9],
...                    [np.nan, np.nan, np.nan]],
...                   columns=['A', 'B', 'C'])

在行上聚合这些函数。

>>> df.agg(['sum', 'min'])
        A     B     C
sum  12.0  15.0  18.0
min   1.0   2.0   3.0

每列的不同聚合。

>>> df.agg({'A' : ['sum', 'min'], 'B' : ['min', 'max']})
        A    B
sum  12.0  NaN
min   1.0  2.0
max   NaN  8.0

在列上聚合不同的函数,并重命名结果 DataFrame 的索引。

>>> df.agg(x=('A', 'max'), y=('B', 'min'), z=('C', 'mean'))
     A    B    C
x  7.0  NaN  NaN
y  NaN  2.0  NaN
z  NaN  NaN  6.0

在列上聚合。

>>> df.agg("mean", axis="columns")
0    2.0
1    5.0
2    8.0
3    NaN
dtype: float64