本文主要介绍pandas中数据分组的操作,包括groupby()和agg()函数的使用,以及示例说明。
在对数据进行分组操作时,可以使用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'])
在进行分组操作后,可以针对某一列或多列数据,应用一些统计函数来计算研究数据的某些特征,例如求和、平均值、最大值、最小值等等。
这时可以使用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对象。
接下来通过一个示例来进一步介绍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