关键词

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

本文主要介绍pandas中数据分组的操作,包括groupby()和agg()函数的使用,以及示例说明。

1. groupby()函数的使用

在对数据进行分组操作时,可以使用groupby()函数,将数据按照某个标准进行分组。例如,按照年份对销售量数据进行分组,可以使用以下代码:

import pandas as pd

data = pd.read_csv('sales.csv')
grouped_data = data.groupby('year')

上述代码会将‘sales.csv’文件中的数据按照‘year’列的值进行分组,返回一个DataFrameGroupBy对象。

groupby()函数还可以按照多个列进行分组,例如按照‘year’和‘month’两列进行分组:

grouped_data = data.groupby(['year', 'month'])

2. agg()函数的使用

在进行分组操作后,可以针对某一列或多列数据,应用一些统计函数来计算研究数据的某些特征,例如求和、平均值、最大值、最小值等等。

这时可以使用agg()函数来对数据进行汇总计算。下面是一个简单的示例,对销售数据进行分组,并计算每年的销售总额和平均价格:

import pandas as pd

data = pd.read_csv('sales.csv')
grouped_data = data.groupby('year')

result = grouped_data.agg({'sales': 'sum', 'price': 'mean'})

上述代码中的agg()函数对‘sales’和‘price’两列数据应用了不同的统计函数,分别计算总和和平均值,最终返回一个包含计算结果的DataFrame对象。

agg()函数还支持应用多种统计函数,例如对‘sales’列计算总和和平均值:

result = grouped_data.agg({'sales': ['sum', 'mean'], 'price': 'mean'})

上述代码中的agg()函数对‘sales’列应用了‘sum’和‘mean’两种统计函数,对‘price’列应用了‘mean’函数,最终返回一个包含了多种统计结果的DataFrame对象。

3. 示例说明

接下来通过一个示例来进一步介绍groupby()和agg()函数的使用。

假设有一个sales.csv文件,里面包含了每个月份的销售记录,我们要对每年的销售数据进行分析。数据示例如下:

year,month,sales,price
2019,1,100,10
2019,2,120,12
2019,3,150,15
2020,1,80,8
2020,2,100,10
2020,3,120,12

以下是代码实现:

import pandas as pd

data = pd.read_csv('sales.csv')
grouped_data = data.groupby('year')

result = grouped_data.agg({'sales': ['sum', 'mean'], 'price': 'mean'})
print(result)

输出结果如下:

        sales       price
          sum   mean  mean
year                      
2019      370  123.3  12.3
2020      300  100.0  10.0

可以看到,经过groupby()和agg()函数的处理,我们得到了每年的销售总额、平均销售额和平均价格数据。

本文链接:http://task.lmcjl.com/news/17368.html

展开阅读全文