📅  最后修改于: 2023-12-03 15:33:23.919000             🧑  作者: Mango
pandas
库是一个快速、强大、灵活且易于使用的数据分析和操作工具,使用pandas
可以完成数据的清洗、转换、分析以及可视化等一系列操作。其中groupby
是pandas
中非常重要的一个功能,可以将数据按照指定的多个标准进行分组,并对分组后的数据进行各种聚合操作,例如求和、均值、计数等。此外,pandas
还拥有强大的绘图功能,可以将分组聚合的结果绘制成各种类型的图表,如柱状图、折线图、饼状图等。
本文将着重介绍pandas
中groupby
多个值和绘图结果的使用,为程序员带来实用的参考。
当需要按照多个字段对数据进行分组时,可以使用多个字段的列表来传递给groupby
方法。例如,对一个包含销售记录的数据集按照年份和地区进行分组,可以使用如下代码:
import pandas as pd
data = {
'year': [2019, 2019, 2019, 2018, 2018, 2017, 2017, 2017],
'region': ['East', 'West', 'North', 'East', 'West', 'North', 'East', 'West'],
'sales': [1000, 2000, 3000, 1500, 2500, 3500, 1200, 1800]
}
df = pd.DataFrame(data)
grouped = df.groupby(['year', 'region'])
result = grouped.sum()
print(result)
输出结果如下:
sales
year region
2017 East 1200
North 3500
West 1800
2018 East 1500
West 2500
2019 East 1000
North 3000
West 2000
上述代码中首先创建了一个包含年份、地区和销售额的销售记录数据集df
,然后按照年份和地区对数据进行分组,最后计算出每个分组的销售总额并输出结果。
pandas
库自带了非常方便的绘图工具,可以使用plot
方法将聚合结果可视化。例如,将上述多个字段分组后的结果绘制成柱状图,可以使用如下代码:
import pandas as pd
import matplotlib.pyplot as plt
data = {
'year': [2019, 2019, 2019, 2018, 2018, 2017, 2017, 2017],
'region': ['East', 'West', 'North', 'East', 'West', 'North', 'East', 'West'],
'sales': [1000, 2000, 3000, 1500, 2500, 3500, 1200, 1800]
}
df = pd.DataFrame(data)
grouped = df.groupby(['year', 'region'])
result = grouped.sum()
result.plot(kind='bar')
plt.show()
运行上述代码可以得到如下的柱状图:
使用plot
方法时,可以通过传入kind
参数选择图形类型。例如,kind='line'
表示绘制折线图,kind='pie'
表示绘制饼状图。同时,可以使用plt
模块的各种方法对图形进行自定义,例如设置横轴标签、纵轴标签、图标题等。
pandas
库中的groupby
功能可以对数据进行灵活的分组操作,可以按照单个或多个字段进行分组,并对分组后的数据进行各种聚合操作,例如求和、均值、计数等。同时,pandas
库还拥有丰富的绘图功能,可以将分组聚合的结果绘制成多种类型的图表。这些功能的灵活使用可以帮助程序员更加高效地进行数据分析和可视化。