Pandas 中的日期范围

作者:编程家 分类: pandas 时间:2025-03-31

Pandas 中的日期范围

Pandas 是一个强大的数据分析工具,提供了丰富的日期和时间处理功能。其中之一是日期范围的生成,它可以帮助我们快速生成一系列连续的日期。

在 Pandas 中,我们可以使用 date_range() 函数来生成日期范围。该函数有三个主要的参数:start、end 和 periods。start 和 end 分别表示日期范围的起始和结束日期,而 periods 则表示日期范围的长度。

下面是一个简单的示例代码,展示了如何使用 date_range() 函数生成日期范围:

 python

import pandas as pd

# 生成从 2021-01-01 到 2021-01-10 的日期范围

date_range = pd.date_range(start='2021-01-01', end='2021-01-10')

print(date_range)

运行上述代码,我们将得到一个包含从 2021-01-01 到 2021-01-10 的日期范围的结果。输出如下:

DatetimeIndex(['2021-01-01', '2021-01-02', '2021-01-03', '2021-01-04',

'2021-01-05', '2021-01-06', '2021-01-07', '2021-01-08',

'2021-01-09', '2021-01-10'],

dtype='datetime64[ns]', freq='D')

我们可以看到,生成的日期范围是一个包含每一天日期的 DatetimeIndex 对象。freq 参数默认为 'D',表示按天生成日期范围。

自定义日期频率

除了按天生成日期范围外,Pandas 还提供了其他的日期频率选项。我们可以使用 freq 参数来指定日期范围的频率。

下面是一些常用的日期频率选项:

- 'D':按天

- 'B':按工作日

- 'W':按周

- 'M':按月

- 'Q':按季度

- 'A':按年

示例代码如下所示:

 python

import pandas as pd

# 生成从 2021-01-01 到 2021-12-31 的工作日日期范围

date_range = pd.date_range(start='2021-01-01', end='2021-12-31', freq='B')

print(date_range)

运行上述代码,我们将得到一个包含从 2021-01-01 到 2021-12-31 的工作日日期范围的结果。输出如下:

DatetimeIndex(['2021-01-01', '2021-01-04', '2021-01-05', '2021-01-06',

'2021-01-07', '2021-01-08', '2021-01-11', '2021-01-12',

'2021-01-13', '2021-01-14',

...

'2021-12-20', '2021-12-21', '2021-12-22', '2021-12-23',

'2021-12-24', '2021-12-27', '2021-12-28', '2021-12-29',

'2021-12-30', '2021-12-31'],

dtype='datetime64[ns]', length=261, freq='B')

通过指定 freq 参数为 'B',我们生成了一个包含从 2021-01-01 到 2021-12-31 的工作日日期范围的结果。

按照间隔生成日期范围

除了指定起始和结束日期外,我们还可以使用 periods 参数来指定日期范围的长度。periods 表示要生成的日期范围的长度,可以是整数或负数。

下面是一个示例代码,展示了如何按照间隔生成日期范围:

 python

import pandas as pd

# 生成从 2021-01-01 开始的连续 10 天日期范围

date_range = pd.date_range(start='2021-01-01', periods=10)

print(date_range)

运行上述代码,我们将得到一个包含从 2021-01-01 开始的连续 10 天日期范围的结果。输出如下:

DatetimeIndex(['2021-01-01', '2021-01-02', '2021-01-03', '2021-01-04',

'2021-01-05', '2021-01-06', '2021-01-07', '2021-01-08',

'2021-01-09', '2021-01-10'],

dtype='datetime64[ns]', freq='D')

我们可以看到,生成的日期范围是一个包含连续 10 天日期的 DatetimeIndex 对象。

Pandas 提供了强大的日期范围生成功能,可以帮助我们快速生成一系列连续的日期。通过使用 date_range() 函数,我们可以指定起始日期、结束日期和日期频率来生成所需的日期范围。另外,我们还可以使用 periods 参数来指定日期范围的长度。

无论是进行时间序列分析、日期计算还是数据可视化,Pandas 中的日期范围功能都能帮助我们更加高效地处理日期和时间数据。