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 聚合函数(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