Python pandas.DataFrame.agg函数方法的使用

Python的pandas库中,DataFrame.agg()方法用于对DataFrame的列进行聚合操作。可以按照指定的函数或函数列表进行聚合,可以是内置的聚合函数(如sum、mean、max等),也可以是自定义的函数。本文主要介绍一下Pandas中pandas.DataFrame.agg方法的使用。

DataFrame.agg(func, axis=0, *args, **kwargs)

使用指定axis上的一个或多个操作Aggregate。

参数:

func function, str, list dict

函数,用于聚合数据。如果是函数,

则必须在传递DataFrame或传递到DataFrame.apply时工作。

接受的组合是:

function

string function name

functions的list  和/或 function names, 例如, [np.sum, 'mean']

axis labels的dict -> functions, function names 或 这样的list.

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

如果0或' index ':应用函数到每一列。

如果1或‘columns’:应用函数到每一行。

*args

要传递给func的位置参数。

**kwargs

要传递给func的关键字参数。

返回:

DataFrame, Seriesscalar

如果使用单个函数调用DataFrame.agg,则返回Series

如果使用多个函数调用DataFrame.agg

如果使用单个函数调用Series.agg则返回DataFrame

如果使用多个函数调用Series.agg则返回标量, 

返回一个Series

聚合操作总是在轴上执行,或者是

index(默认)或列轴。 这种行为不同于

`numpy`聚合函数(`mean``median`

`prod``sum``std`

`var`),其中默认值是计算展平的聚合

数组,例如``numpy.mean(arr_2d)``

而不是``numpy.mean(arr_2d,

轴= 0)``

`agg``aggregate`的别名。 使用别名。

注意

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"))

推荐阅读
cjavapy编程之路首页