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

pandas.DataFrame.aggregate 函数是一个非常有用的方法,可以对 DataFrame 的列应用一个或多个聚合函数。可以对单个列或整个 DataFrame 进行聚合。本文主要介绍一下Pandas中pandas.DataFrame.aggregate方法的使用。

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

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

新版本0.20.0

参数:

func function, str, listdict

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

则必须在传递DataFrame

或传递到DataFrame.apply时工作。

接受的组合是:

function

string function name

list of functions 和/或 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],
    '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

推荐阅读
cjavapy编程之路首页