pandas数据分组groupby()和统计函数agg()的使用方法

pandas数据分组groupby()和统计函数agg()的使用方法

在pandas中,groupby()函数和agg()函数是常用的数据分组和统计函数。groupby()函数可以对数据进行分组,agg()函数可以对分组后的数据进行统计。

groupby()函数用法

groupby()函数可以对数据进行分组,常用于数据聚合和分组计算。groupby()函数的基本语法如下:

groupby(by = 'column_name')

其中,by参数指定了分组的列名。

groupby()按单列分组用法实例

可以按单列对数据进行分组,例如按照性别分组:

import pandas as
pddf = pd.DataFrame({
    'name': ['Alice', 'Bob', 'Charlie', 'David', 'Emily', 'Frank'],
    'gender': ['F', 'M', 'M', 'M', 'F', 'M'],
    'age': [25, 30, 35, 40, 45, 50],
    'salary': [5000, 8000, 6000, 7000, 9000, 7500]
})
grouped = df.groupby('gender')
print(grouped.groups)

输出结果如下:

{'F': [0, 4], 'M': [1, 2, 3, 5]}

可以看到,按照性别分组后,分别有两个女性和四个男性。

groupby()按多列分组用法实例

也可以按多列对数据进行分组,例如按照性别和年龄分组:

#按照性别和年龄分组
grouped = df.groupby(['gender', 'age'])
print(grouped.groups)

输出结果如下:

{
    ('F', 25): [0], ('F', 45): [4], ('M', 30): [1], ('M', 35): [2], ('M', 40): [3], ('M', 50): [5]
}

可以看到,按照性别和年龄分组后,每个组中只包含一个数据。

agg()函数

agg()函数可以对分组后的数据进行统计,例如计算每个组的平均值、最大值等。agg()函数的基本语法如下:

agg('function_name')

其中,function_name参数指定了要使用的统计函数名称。

agg()函数统计函数用法实例

可以使用单个统计函数对分组后的数据进行统计,例如计算每个性别的平均薪资:

# 按照性别分组
grouped = df.groupby('gender')
# 计算每个性别的平均薪资
result = grouped.agg('mean')print(result)

输出结果如下:

age  salary
gender                 
F       35.000000    7000
M       38