DataFrame.aggregate(func, axis=0, *args, **kwargs)
使用指定axis上的一个或多个操作聚合。
新版本0.20.0
参数: | func : 函数,用于聚合数据。如果是函数, 则必须在传递 或传递到 接受的组合是: function string function name list of functions 和/或 function names, 例如, [np.sum, 'mean'] axis labels的 或 axis : {0 or ‘index’, 1 或 ‘columns’}, 默认 如果0或' index ':应用函数到每一列。 如果1或‘columns’:应用函数到每一行。 *args 要传递给 **kwargs 要传递给 |
返回: |
如果使用单个函数调用 则返回Series, 如果使用多个函数调用 如果使用单个函数调用 则返回 如果使用多个函数调用 返回一个 聚合操作总是在轴上执行, 或者是 index(默认)或列轴。 这种行为不同于
(
数组,例如 而不是
使用别名。 |
注意:
agg
是聚合的别名。使用别名。
传递的用户定义函数将被传递一Series用于求值。
例如,
1)对单个列应用单个聚合函数
import pandas as pd
data = {
'A': [1, 2, 3, 4],
'B': [10, 20, 30, 40],
'C': [100, 200, 300, 400]
}
df = pd.DataFrame(data)
# 对列 'A' 应用 'sum' 聚合函数
result = df['A'].aggregate('sum')
print(result)
2)对多个列应用单个聚合函数
import pandas as pd
data = {
'A': [1, 2, 3, 4],
'B': [10, 20, 30, 40],
'C': [100, 200, 300, 400]
}
df = pd.DataFrame(data)
# 对整个 DataFrame 应用 'sum' 聚合函数
result = df.aggregate('sum')
print(result)
3)对单个列应用多个聚合函数
import pandas as pd
data = {
'A': [1, 2, 3, 4],
'B': [10, 20, 30, 40],
'C': [100, 200, 300, 400]
}
df = pd.DataFrame(data)
# 对列 'A' 应用 'sum' 和 'mean' 聚合函数
result = df['A'].aggregate(['sum', 'mean'])
print(result)
4)对多个列应用多个聚合函数
import pandas as pd
data = {
'A': [1, 2, 3, 4],
'B': [10, 20, 30, 40],
'C': [100, 200, 300, 400]
}
df = pd.DataFrame(data)
# 对列 'A' 和 'B' 应用 'sum' 和 'mean' 聚合函数
result = df.aggregate({
'A': ['sum', 'mean'],
'B': ['min', 'max']
})
print(result)
5)对整个 DataFrame 应用自定义聚合函数
import pandas as pd
data = {
'A': [1, 2, 3, 4],
'B': [10, 20, 30, 40],
'C': [100, 200, 300, 400]
}
df = pd.DataFrame(data)
# 定义一个自定义聚合函数
def custom_agg(x):
return x.max() - x.min()
# 对整个 DataFrame 应用自定义聚合函数
result = df.aggregate(custom_agg)
print(result)
6)使用示例
import pandas as pd
import numpy as np
# 创建DataFrame
df = pd.DataFrame([[1, 2, 3],
[4, 5, 6],
[7, 8, 9],
[np.nan, np.nan, np.nan]],
columns=['A', 'B', 'C'])
# 在行上聚合这些函数
print(df.agg(['sum', 'min']))
# 输出:
# A B C
# sum 12.0 15.0 18.0
# min 1.0 2.0 3.0
# 每个列有不同的聚合
print(df.agg({'A': ['sum', 'min'], 'B': ['min', 'max']}))
# 输出:
# A B
# max NaN 8.0
# min 1.0 2.0
# sum 12.0 NaN
# 对列进行聚合
print(df.agg("mean", axis="columns"))
# 输出:
# 0 2.0
# 1 5.0
# 2 8.0
# 3 NaN
# dtype: float64