pandas.DataFrame.agg#

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

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

参数:
func函数、字符串、列表或字典

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

可接受的组合包括

  • 函数

  • 字符串函数名

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

  • 字典,键为轴标签,值为函数、函数名或上述内容的列表。

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

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

*args

传递给 func 的位置参数。

**kwargs

传递给 func 的关键字参数。

返回:
标量、Series 或 DataFrame

返回值可以是

  • 标量:当 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 聚合函数(meanmedianprodsumstdvar)不同,后者默认计算展平数组的聚合,例如,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