📜  pandas date_range - Python (1)

📅  最后修改于: 2023-12-03 15:33:23.573000             🧑  作者: Mango

pandas date_range - Python

pandas 库中的 date_range 函数能够快速生成一段时间范围内的日期序列。这个函数接受多个参数,可以定制化生成不同形式的日期序列。

生成固定长度的日期序列

使用 date_range 函数可以轻松生成一段固定长度的日期序列。下面的代码生成了一个从 2019年1月1日 开始,长度为 10 天的日期序列:

import pandas as pd

date_rng = pd.date_range(start='1/1/2019', end='1/10/2019', freq='D')
print(date_rng)

输出结果:

DatetimeIndex(['2019-01-01', '2019-01-02', '2019-01-03', '2019-01-04',
               '2019-01-05', '2019-01-06', '2019-01-07', '2019-01-08',
               '2019-01-09', '2019-01-10'],
              dtype='datetime64[ns]', freq='D')

其中,start 参数表示开始日期,end 参数表示结束日期,freq 参数表示频率。在上面的代码中,频率为 'D' 表示每天,也可以是 'W'(每周)、'M'(每月)等等。

生成不同时间间隔的日期序列

除了固定长度的日期序列之外,date_range 函数还能够生成不同时间间隔的日期序列,例如每天、每周、每月、每季度等等。下面的代码生成了一个从 2019年1月1日2019年12月31日 的日期序列,每隔一个月:

import pandas as pd

date_rng = pd.date_range(start='1/1/2019', end='12/31/2019', freq='M')
print(date_rng)

输出结果:

DatetimeIndex(['2019-01-31', '2019-02-28', '2019-03-31', '2019-04-30',
               '2019-05-31', '2019-06-30', '2019-07-31', '2019-08-31',
               '2019-09-30', '2019-10-31', '2019-11-30', '2019-12-31'],
              dtype='datetime64[ns]', freq='M')

在上面的代码中,参数 freq'M' 表示每个月。如果想要生成每个季度的日期序列,可以将 freq 改为 'Q';如果想要生成每周的日期序列,可以将 freq 改为 'W' 等等。

调整日期序列

生成的日期序列可以随意调整,例如可以移动日期序列的起始位置,或者修改日期序列的频率。下面的代码生成了一个从 2019年1月1日 开始,长度为 10 天的日期序列;接着将这个日期序列的起始位置向后移动了 2 天:

import pandas as pd

date_rng = pd.date_range(start='1/1/2019', end='1/10/2019', freq='D')
shifted_date_rng = date_rng + pd.Timedelta('2D')
print(shifted_date_rng)

输出结果:

DatetimeIndex(['2019-01-03', '2019-01-04', '2019-01-05', '2019-01-06',
               '2019-01-07', '2019-01-08', '2019-01-09', '2019-01-10',
               '2019-01-11', '2019-01-12'],
              dtype='datetime64[ns]', freq=None)

在上面的代码中,pd.Timedelta('2D') 表示时间偏移量为 2 天。

总结

pandas 库中的 date_range 函数提供了非常便利的日期序列生成工具。通过指定开始时间、结束时间、时间间隔等参数,可以轻松生成各种形式的日期序列。同时,也可以对生成的日期序列进行调整,例如移动起始位置等等。