DataFrame.agg(func, axis=0, *args, **kwargs)
使用指定axis上的一个或多个操作Aggregate。
参数: | func : 函数,用于聚合数据。如果是函数, 则必须在传递 接受的组合是:
functions的list 和/或 function names, 例如, [np.sum, 'mean'] axis labels的dict -> functions, function names 或 这样的list. axis : {0 or ‘index’, 1 或 ‘columns’}, 默认 0 如果 如果
要传递给func的位置参数。
要传递给func的关键字参数。 |
返回: |
如果使用单个函数调用 如果使用多个函数调用 如果使用单个函数调用 如果使用多个函数调用 返回一个 聚合操作总是在轴上执行,或者是
数组,例如 而不是
|
注意:
agg
是聚合的别名。使用别名。
传递的用户定义函数将被传递一Series
用于求值。
例如,
1)使用内置聚合函数
import pandas as pd
data = {
'A': [1, 2, 3, 4, 5],
'B': [10, 20, 30, 40, 50],
'C': [100, 200, 300, 400, 500]
}
df = pd.DataFrame(data)
# 对每列分别求和、平均值和最大值
result = df.agg(['sum', 'mean', 'max'])
print(result)
2)使用不同的聚合函数对不同的列
import pandas as pd
data = {
'A': [1, 2, 3, 4, 5],
'B': [10, 20, 30, 40, 50],
'C': [100, 200, 300, 400, 500]
}
df = pd.DataFrame(data)
# 对A列求和,对B列求平均值,对C列求最大值
result = df.agg({'A': 'sum', 'B': 'mean', 'C': 'max'})
print(result)
3)使用自定义函数
import pandas as pd
data = {
'A': [1, 2, 3, 4, 5],
'B': [10, 20, 30, 40, 50],
'C': [100, 200, 300, 400, 500]
}
df = pd.DataFrame(data)
# 定义一个自定义函数,计算最大值和最小值之差
def max_min_diff(series):
return series.max() - series.min()
# 对每列应用自定义函数
result = df.agg(max_min_diff)
print(result)
4)使用示例
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("在行上聚合这些函数:")
print(df.agg(['sum', 'min']))
print()
# 每个列有不同的聚合
print("每个列有不同的聚合:")
print(df.agg({'A': ['sum', 'min'], 'B': ['min', 'max']}))
print()
# 对列进行聚合
print("对列进行聚合:")
print(df.agg("mean", axis="columns"))