最近在建模,做时间序列的时候用到这个函数,所以整理下,都是常用简单操作,足够满足我们使用了。
以一个代码为例:
x = pd.date_range('20040101', '20270101',freq='YS')
print(x)
结果:
DatetimeIndex(['2004-01-01', '2005-01-01', '2006-01-01', '2007-01-01',
'2008-01-01', '2009-01-01', '2010-01-01', '2011-01-01',
'2012-01-01', '2013-01-01', '2014-01-01', '2015-01-01',
'2016-01-01', '2017-01-01', '2018-01-01', '2019-01-01',
'2020-01-01', '2021-01-01', '2022-01-01', '2023-01-01',
'2024-01-01', '2025-01-01', '2026-01-01', '2027-01-01'],
dtype='datetime64[ns]', freq='AS-JAN')
简单说最常用的四个参数:start、end、periods、freq。
start和end就不多介绍了,就是输入的开始时间和结束时间。
periods是时间间隔,可以配合start或者end其中一个使用。
freq是指定频率(默认是D),我感觉可以描述出规则也行,我们可以设置一个start和end,然后我们可以选择以年为单位或者以月为单位,上面的代码就是以年为例。
最常见的参数就是S、H、D、M、Y(秒、时、天、月、年),当然如果是年月会默认是该月最后一天或者最后一个月最后一天,如果想选择第一天,可以选择YS、MS。
同时加一个比较全的参数表:
别名 | 偏移量类型 | 说明 |
D | Day | 每日历日 |
B | BusinessDay | 每工作日 |
H | Hour | 每小时 |
T/min | Minute | 每分 |
S | Second | 每秒 |
L/ms | Million | 每毫秒 |
U | Micro | 每微妙 |
M | MonthEnd | 每月最后一个日历日 |
BM | BusinessMonthEnd | 每月最后一个工作日 |
MS | MonthBegin | 每月第一个日历日 |
BMS | BusinessMonthBegin | 每月第一个工作日 |
W-MON、W-TUE… | Week | 从指定的星期几开始算起,每周 |
WOM-1MON、WOM-2MON… | WeekOfMonth | 产生每月第一、二、三、四周的星期几,例如WOM-1MON表示每月的第一个星期一 |
Q-JAN、Q-FEB… | QuarterEnd | 对于以指定月份(JAN、FEB、…、DEC)结束的年度,每季度的最后一月的最后一个日历日 |
BQ-JAN、BQ-FEB… | BusinessQuarterEnd | 对于以指定月份(JAN、FEB、…、DEC)结束的年度,每季度的最后一月的最后一个工作日 |
QS-JAN、QS-FEB… | QuarterBegin | 对于以指定月份(JAN、FEB、…、DEC)结束的年度,每季度的最后一月的第一个日历日 |
BQS-JAN、BQS-FEB… | BusinessQuarterBegin | 对于以指定月份(JAN、FEB、…、DEC)结束的年度,每季度的最后一月的第一个工作日 |
A-JAN、A-FEB… | YearEnd | 每年指定月份最后一个日历日 |
BA-JAN、BA-FEB… | BusinessYearEnd | 每年指定月份最后一个工作日 |
AS-JAN、AS-FEB… | YearBegin | 每月指定月份第一个日历日 |
BAS-JAN、BAS-FEB… | BusinessYearBegin | 每月指定月份第一个工作日 |