Pandas聚合函数agg详细介绍

Pandas库是Python语言中用于数据处理和分析的一个强大的库。在Pandas中,agg函数是一个非常重要的函数,它能够完成数据的分组和聚合操作,常用于数据分析和统计。

基础用法

agg函数的语法格式如下:

DataFrame.groupby(by=None, axis=0, level=None, as_index=True, sort=True, group_keys=True, squeeze=False, observed=False, **kwargs).agg(func, *args, **kwargs)
其中,by参数用于指定分组的列;func参数用于指定聚合函数;*args和**kwargs参数传递给聚合函数。

本文将详细介绍agg函数的用法和实现步骤,并提供带中文注释的代码和代码数据和代码结果输出,同时也会提供一个示例。

实现步骤

实现agg函数需要遵循以下几个步骤: 导入需要使用的库;创建数据框;使用groupby函数进行分组;使用agg函数聚合数据。 以下是具体的介绍和实现:

#import所需的库
import pandas as pd
import numpy as np

#创建数据框
data = pd.DataFrame({'A': ['foo''bar''foo''bar''foo''bar''foo''foo'],
                     'B': ['one''one''two''three''two''two''one''three'],
                     'C': [11,2,3,4,5,6,12,1],
                     'D': [11,2,2,3,5,6,12,10]})
#对数据进行分组
grouped = data.groupby('A')

#使用agg函数进行聚合操作
result = grouped.agg({'C': np.sum, 'D': np.mean})
result

data数据框内容如下:result输出结果如下:

详细案例

为了更好地理解agg函数的具体实现过程,下面再给出一个案例:

假设有一份销售数据,需要统计每个区域的销售总金额和平均单价。数据如下:

基本使用

使用Pandas库中的agg函数进行分组和聚合操作,统计每个区域的销售总金额和平均单价、最大价格、最小价格、计数等。。

import pandas as pd

data = pd.DataFrame({'区域': ['北京''上海''深圳''北京''上海''深圳'],
                     '金额': [100000, 200000, 300000, 400000, 500000, 600000],
                     '单价': [1000, 1500, 2000, 2000, 2500, 3000]})

grouped = data.groupby('区域').agg({'金额': sum, '单价''mean'})
print(grouped)

输出结果为:

列名更新

有时候列名没有更新,并不知道这个新列的含义,可以使用以下代码更新列名。

import pandas as pd

data = pd.DataFrame({'区域': ['北京''上海''深圳''北京''上海''深圳'],
                     '金额': [100000, 200000, 300000, 400000, 500000, 600000],
                     '单价': [1000, 1500, 2000, 2000, 2500, 3000]})
grouped = data.groupby('区域').agg(金额总和=('金额''sum'),单价平均=('单价','mean'),
                                 计数=('金额''count'),金额最大值=('金额''max'),
                                单价中位数=('金额''median'),单价方差=('金额''median'))

grouped

自定义聚合函数

自带的聚合函数可能不够用,需要自定义聚合函数。比如我有个简单的自定义聚合逻辑如下。

def custom_agg(arr):#s设定一个函数,当最小值与最大值差异在2000以内,取最小值;差异在2000以上取最大值。
    a=max(arr)-min(arr)#最大值减去最小值
    if a<2000:
        return min(arr)
    else:
        return max(arr)

只需要在聚合的时候调用聚合函数即可,实现过程如下。

import pandas as pd

data = pd.DataFrame({'区域': ['北京''上海''深圳''北京''上海''深圳'],
                     '金额': [100000, 200000, 300000, 400000, 500000, 600000],
                     '单价': [1000, 1500, 2000, 2000, 2500, 3000]})
grouped = data.groupby('区域').agg(自定义聚合=('单价', custom_agg))

grouped

总结

agg函数是Pandas中用于数据聚合和分组操作的非常重要的函数,可以用于各种数据分析和统计的场合。通过本文的学习,相信大家能很快掌握agg函数的使用。


请使用浏览器的分享功能分享到微信等