Pandas中提供了一个date_range()函数,主要用于生成一个具有固定频率的DatetimeIndex对象,该函数的语法格式如下:
pandas.date_range(start=None,end=None,periods=None,freq=None,tz=None,normalize=False,name=None,closed=None,**kwargs)
上述部分参数的含义如下:
- start:表示起始日期,默认为None。
- end:表示终止日期,默认为None。
- periods:表示产生多少个时间戳索引值。若设置为None,则start与end必须不能为None。 //默认生成的时间序列数据是按天计算的,即频率为"D"
- freq:表示以自然日为单位,这个参数用来指定计时单位,比如"5H"表示每隔5个小时计算一次。
- tz:表示时区,比如Asia、Hong_Kong。
- normalize:接收布尔值,默认值为False。如果设为True的话,那么在产生时间戳索引值之前,会将start和end都转化为当日的午夜0点。 //规范化,是否将时间索引重置为当日午夜0点
- name:给返回的时间序列索引指定一个名字。
- closed:表示start和end这个区间端点是否包含在区间内,可以取值为以下:
(1)left:表示左闭右开区间。
(2)right:表示左开右闭区间。
(3)None:表示两边都是闭区间。
需要注意的是,start、end、periods、freq这四个参数至少要指定三个参数,否则会出现错误。当调用date_range()函数创建DatetimeIndex对象时,如果只是传入了开始日期(start参数)与结束日期(end参数),则默认生成的时间点是按天计算,即freq参数为D,例子如下:
import pandas as pd # date_range()函数创建固定频率的时间序列,主要用于生成一个具有固定频率的 DatetimeIndex 对象
pd.date_range('2018/08/10','2018/08/20')
#只传入开始日期 start参数 和 结束日期 end参数, 则默认生成的时间点是按天计算的,即 freq 参数为D
如果只是传入了开始日期或结束日期,则还需要periods参数指定产生多少个时间戳,例子如下:
import pandas as pd #传入start和periods参数
pd.date_range(start='2020-12-04',periods=5)
import pandas as pd #传入end和periods参数
pd.date_range(end='2020-12-04',periods=5) #periods时间戳 5个,出现 5个日期
由此可见,起始日期与结束日期定义了时间序列索引的严格边界
freq参数的用法例子:
import pandas as pd # freq 表示以自然日为单位,这个参数用来指定计时单位
dates_index=pd.date_range('2020-12-02',periods=5,freq='W-SUN')
dates_index # freq 传入 W—SUN ,表示每周日计算一次
import pandas as pd
pd.date_range(start='2018/8/1 12:13:30',periods=5,tz='Asia/Hong_Kong')
import pandas as pd #normalize=True,规范化时间戳,将时间索引重置为当日的午夜0点
pd.date_range(start='2018/8/1 12:13:30',periods=5,normalize=True,tz='Asia/Hong_Kong')
作者:KJ.JK
本文仅用于交流学习,未经作者允许,禁止转载,更勿做其他用途,违者必究。
文章对你有所帮助的话,欢迎给个赞或者 star 呀,你的支持是对作者最大的鼓励,不足之处可以在评论区多多指正,交流学习呀