periods

更新时间:2023-01-04 02:46:08 阅读: 评论:0


2023年1月4日发(作者:如何使全身美白)

python时间序列按频率⽣成⽇期的⽅法

有时候我们的数据是按某个频率收集的,⽐如每⽇、每⽉、每15分钟,那么我们怎么产⽣对应频率的索引呢?pandas中的

date_range可⽤于⽣成指定长度的DatetimeIndex。

我们先看⼀下怎么⽣成⽇期范围:_range(startdate,enddate)

1.⽣成指定开始⽇期和结束⽇期的时间范围:

In:importpandasaspd

index=_range('4/1/2019','5/1/2019')

print(index)

Out:

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

'2019-04-05','2019-04-06','2019-04-07','2019-04-08',

'2019-04-09','2019-04-10','2019-04-11','2019-04-12',

'2019-04-13','2019-04-14','2019-04-15','2019-04-16',

'2019-04-17','2019-04-18','2019-04-19','2019-04-20',

'2019-04-21','2019-04-22','2019-04-23','2019-04-24',

'2019-04-25','2019-04-26','2019-04-27','2019-04-28',

'2019-04-29','2019-04-30','2019-05-01'],

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

也可以只指定开始⽇期或结束⽇期,但这时必须要输⼊⼀个时间长度,并且指定输⼊的是开始时间还是结束时间,如果不指定

默认是开始时间。

date_range(startdate/enddate,periods)

In:print(_range(start='4/1/2019',periods=10))

Out:DatetimeIndex(['2019-04-01','2019-04-02','2019-04-03','2019-04-04',

'2019-04-05','2019-04-06','2019-04-07','2019-04-08',

'2019-04-09','2019-04-10'],

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

In:print(_range(start='5/1/2019',periods=10))

Out:DatetimeIndex(['2019-05-01','2019-05-02','2019-05-03','2019-05-04',

'2019-05-05','2019-05-06','2019-05-07','2019-05-08',

'2019-05-09','2019-05-10'],

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

现在我们已经知道怎么⽣成⽇期范围了,但是上⾯我们⽣成的⽇期的时间间隔都是天,接下来告诉⼤家怎么⽣成其他时间频率

的⽇期范围。

要⽣成按某个频率计算的⽇期范围,只需要在date_range后加上freq就可以了。⽐如,⽣成每⼩时间隔的时间:

In:print(_range(start='5/1/2019',periods=10,freq='h'))

Out:DatetimeIndex(['2019-05-0100:00:00','2019-05-0101:00:00',

'2019-05-0102:00:00','2019-05-0103:00:00',

'2019-05-0104:00:00','2019-05-0105:00:00',

'2019-05-0106:00:00','2019-05-0107:00:00',

'2019-05-0108:00:00','2019-05-0109:00:00'],

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

⽣成时间间隔为3个⼩时的时间:

In:print(_range(start='5/1/2019',periods=10,freq='3h'))

Out:DatetimeIndex(['2019-05-0100:00:00','2019-05-0101:00:00',

'2019-05-0102:00:00','2019-05-0103:00:00',

'2019-05-0104:00:00','2019-05-0105:00:00',

'2019-05-0106:00:00','2019-05-0107:00:00',

'2019-05-0108:00:00','2019-05-0109:00:00'],

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

⽣成时间间隔为1⼩时30分的时间:

In:print(_range(start='5/1/2019',periods=10,freq='1h30min'))

Out:DatetimeIndex(['2019-05-0100:00:00','2019-05-0101:30:00',

'2019-05-0103:00:00','2019-05-0104:30:00',

'2019-05-0106:00:00','2019-05-0107:30:00',

'2019-05-0109:00:00','2019-05-0110:30:00',

'2019-05-0112:00:00','2019-05-0113:30:00'],

dtype='datetime64[ns]',freq='90T')

python还可以⽣成其他不规则频率的时间,⽐如每⽉的第⼀个⼯作⽇,每⽉的第⼀个⽇历⽇等

⽣成每⽉的第⼀个⼯作⽇:

In:print(_range(start='1/1/2019',periods=12,freq='BMS'))

Out:DatetimeIndex(['2019-01-01','2019-02-01','2019-03-01','2019-04-01',

'2019-05-01','2019-06-03','2019-07-01','2019-08-01',

'2019-09-02','2019-10-01','2019-11-01','2019-12-02'],

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

⽣成每⽉的第⼀个⽇历⽇:

In:print(_range(start='1/1/2019',periods=12,freq='MS'))

Out:DatetimeIndex(['2019-01-01','2019-02-01','2019-03-01','2019-04-01',

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

'2019-09-01','2019-10-01','2019-11-01','2019-12-01'],

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

有⼀种很实⽤的频率类,为“WOM”,即每⽉的⼏个星期⼏。⽐如每⽉的第三个星期五。如果我们每⽉的第三个星期五发⼯

资,这样就可以很⽅便的知道今年每个⽉的⼯资⽇了。

In:print(_range(start='1/1/2019',periods=12,freq='WOM-3FRI'))

Out:DatetimeIndex(['2019-01-18','2019-02-15','2019-03-15','2019-04-19',

'2019-05-17','2019-06-21','2019-07-19','2019-08-16',

'2019-09-20','2019-10-18','2019-11-15','2019-12-20'],

dtype='datetime64[ns]',freq='WOM-3FRI')

下⾯是python可使⽤的时间序列的基础频率表:

别名偏移量类型说明

DDay每⽇历⽇

BBusinessDay每⼯作⽇

HHour每⼩时

T或minMinute每分钟

SSecond每秒

L或msMilli每毫秒

UMicro每微秒

MMonthEnd每⽉最后⼀个⽇历⽇

BMBusinessMonthEnd每⽉最后⼀个⼯作⽇

MSMonthBegin每⽉第⼀个⽇历⽇

BMSBusinessMonthBegin每⽉第⼀个⼯作⽇

W-MON、W-TUEWeek每周的星期⼏

WOM-1MON、WOM-2MONWeekofMonth每⽉第⼏周的星期⼏

Q-JAN、Q-FEBQuarterEnd每个季度对应的该⽉份的最后⼀个⽇历⽇

BQ-JAN、BQ-FEBBusinessQuarterEnd每个季度对应的该⽉份的最后⼀个⼯作⽇

QS-JAN、QS-FEBQuarterBegin每个季度对应的该⽉份的第⼀个⽇历⽇

BQS-JAN、BQS-FEBQuarterBegin每个季度对应的该⽉份的第⼀个⼯作⽇

A-JAN、B-FEBYearEnd每年指定⽉份的最后⼀个⽇历⽇

BA-JAN、BA-FEBBusinessYearEnd每年指定⽉份的最后⼀个⼯作⽇

AS-JAN、AS-FEBYearBegin每年指定⽉份的第⼀个⽇历⽇

BAS-JAN、BAS-FEBBusinessYearBegin每年指定⽉份的第⼀个⼯作⽇

以上所述是⼩编给⼤家介绍的python时间序列按频率⽣成⽇期的⽅法详解整合,希望对⼤家有所帮助,如果⼤家有任何疑问请

给我留⾔,⼩编会及时回复⼤家的。在此也⾮常感谢⼤家对⽹站的⽀持!

本文发布于:2023-01-04 02:46:08,感谢您对本站的认可!

本文链接:http://www.wtabcd.cn/fanwen/fan/90/88132.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

上一篇:actors
下一篇:paused
标签:periods
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图