pandas.DataFrame.agg#

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

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

参数:
函数函数, 字符串, 列表或字典

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

接受的组合是:

  • 函数

  • 字符串函数名

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

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

{0 或 ‘index’, 1 或 ‘columns’},默认 0

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

*args

传递给 func 的位置参数。

**kwargs

传递给 func 的关键字参数。

返回:
标量, 序列或数据框

返回可以是:

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

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

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

参见

DataFrame.apply

执行任何类型的操作。

DataFrame.transform

执行转换类型操作。

DataFrame.groupby

在组上执行操作。

DataFrame.resample

在重采样的箱子上执行操作。

DataFrame.rolling

在滚动窗口上执行操作。

DataFrame.expanding

在扩展窗口上执行操作。

core.window.ewm.ExponentialMovingWindow

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

备注

聚合操作总是在一个轴上执行,要么是索引(默认)要么是列轴。这种行为与 numpy 聚合函数(mean, median, prod, sum, std, var)不同,后者的默认行为是计算展平数组的聚合,例如 numpy.mean(arr_2d) 而不是 numpy.mean(arr_2d, axis=0)

aggaggregate 的别名。使用这个别名。

修改传递对象的函数可能会产生意外行为或错误,并且不受支持。更多详情请参见 使用用户定义函数 (UDF) 方法进行变异

传递的用户定义函数将被传递一个 Series 进行评估。

如果 func 定义了一个索引重标记,axis 必须是 0index

例子

>>> 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