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)
。agg 是 aggregate 的别名。使用这个别名。
修改传递对象的函数可能会产生意外行为或错误,并且不受支持。更多详情请参见 使用用户定义函数 (UDF) 方法进行变异。
传递的用户定义函数将被传递一个 Series 进行评估。
如果
func
定义了一个索引重标记,axis
必须是0
或index
。例子
>>> 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