Pandas 按月份和年份分组

Pandas 按月份和年份分组

在本文中,我们将介绍如何使用Pandas按照月份和年份进行分组。

阅读更多:Pandas 教程

Pandas分组基础知识

在介绍按月份和年份分组之前,我们需要了解Pandas中的分组基础知识。

在Pandas中,我们可以使用groupby方法对数据进行分组。该方法需要指定分组的列名或标签。例如,假设我们有以下的数据集:

日期 国家 销售额
2020-01-01 美国 100
2020-01-02 中国 200
2020-02-01 美国 150
2020-02-15 中国 300
2020-03-01 美国 120
2020-03-02 中国 250

我们可以使用如下的代码将数据集按照国家进行分组:

import pandas as pd

data = pd.read_csv('data.csv')
grouped = data.groupby('国家')
Python

其中,groupby方法返回的是一个GroupBy对象。我们可以进一步进行聚合操作,如计算每个国家的总销售额:

sum_by_country = grouped.agg({'销售额': 'sum'})
Python

Pandas按月份和年份分组

现在我们已经了解了Pandas的分组基础知识,接下来我们来介绍如何按月份和年份进行分组。

假设我们有如下的数据集:

日期 销售额
2020-01-01 100
2020-01-02 200
2020-02-01 150
2020-02-15 300
2020-03-01 120
2020-03-02 250

我们想要计算每个月的总销售额。首先,我们需要将日期转换为Pandas的日期类型:

import pandas as pd

data = pd.read_csv('data.csv')
data['日期'] = pd.to_datetime(data['日期'])
Python

然后,我们可以使用Pandas的resample方法按照月份进行重采样,然后再进行分组:

resample_data = data.resample('M', on='日期').sum()
grouped_data = resample_data.groupby([resample_data.index.year, resample_data.index.month])
Python

上面代码中,我们首先使用resample方法将数据按照月份进行重采样,并且使用sum函数计算每个月的总销售额。然后,我们使用groupby方法将数据按照年份和月份进行分组。

现在,我们可以计算每个月的总销售额:

sum_by_month = grouped_data.agg({'销售额': 'sum'})
Python

示例

下面我们来看一个完整的示例。假设我们有如下的数据集:

日期 销售额
2020-01-01 100
2020-01-02 200
2020-02-01 150
2020-02-15 300
2020-03-01 120
2020-03-02 250
2021-01-01 90
2021-01-02 180
2021-02-01 100
2021-02-15 200
2021-03-01 150
2021-03-02 300

我们想要计算每个月的总销售额。首先,我们需要将日期转换为Pandas的日期类型:

import pandas as pd

data = pd.read_csv('data.csv')
data['日期'] = pd.to_datetime(data['日期'])
Python

然后,我们可以使用Pandas的resample方法按照月份进行重采样,然后再进行分组:

resample_data = data.resample('M', on='日期').sum()
grouped_data = resample_data.groupby([resample_data.index.year, resample_data.index.month])
Python

最后,我们可以计算每个月的总销售额:

sum_by_month = grouped_data.agg({'销售额': 'sum'})
print(sum_by_month)
Python

输出结果为:

         销售额
2020 1   300
     2   450
     3   370
2021 1   270
     2   300
     3   450
Python

我们可以看到,每个月的总销售额已经被正确计算出来了。

总结

本文介绍了如何使用Pandas按照月份和年份进行分组,包括分组基础知识、按月份和年份分组的示例代码。希望本文能够对大家有所帮助。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程