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函数的使用。