Python – 如何按年对Pandas DataFrame进行分组?
在数据分析中,经常需要对数据进行分组和聚合。Pandas库中的DataFrame可以很方便地进行数据分组和聚合操作。
本文将介绍如何使用Pandas对DataFrame进行按年分组的操作。我们将使用一个有关房价的数据集,以分组每年房价的中位数为例。
更多Pandas相关文章,请阅读:Pandas 教程
准备工作
我们首先需要导入Pandas库和它的DataFrame:
import pandas as pd
df = pd.read_csv('housing.csv')
这里我们使用了一个名为housing.csv的数据集,包含了每个城市的房价、平均收入等信息。你可以在网上搜索到housing.csv数据集并下载它。
导入了数据集之后,我们可以查看前5条数据,确认数据是否正确导入。
print(df.head())
输出结果为:
Year City Value
0 2010 Tokyo 636362.0
1 2010 Seoul 231680.0
2 2010 Delhi 161300.0
3 2010 Sao 65675.0
4 2010 Lima 7513.0
可以看到,housing.csv数据集包含了城市名称、年份和房价三个字段。
按年分组
现在我们要将数据按年分组。这可以通过使用Pandas的groupby()
函数来实现。
group_by_year = df.groupby('Year')
这里我们使用了groupby()
函数将DataFrame按照’Year’字段分组,并将分组结果储存在一个名为group_by_year的变量中。
现在我们要计算每年房价的中位数。我们可以使用Pandas的median()
函数来得到每个组内的中位数,并将结果储存在一个名为median_by_year
的变量中。
median_by_year = group_by_year['Value'].median()
这里我们使用了median_by_year()函数计算每个组的中位数,并将结果储存在一个名为median_by_year的变量中。
结果展示
现在我们已经按年分组并计算了每年的房价中位数。我们可以使用Pandas的plot()
函数将结果可视化。
median_by_year.plot(kind='bar', title='Median Housing Value by Year')
这里我们使用了plot()
函数以柱状图的形式显示每年的中位数,并将标题设置为“Median Housing Value by Year”。
完整代码如下:
import pandas as pd
df = pd.read_csv('housing.csv')
group_by_year = df.groupby('Year')
median_by_year = group_by_year['Value'].median()
median_by_year.plot(kind='bar', title='Median Housing Value by Year')
结论
本文介绍了如何使用Python中的Pandas库对DataFrame进行按年分组的操作,并计算每年房价的中位数并可视化结果。这种分组和聚合的方法在数据分析中非常常用,可以帮助我们更好地理解数据。