更新时间:2022-12-29 来源:黑马程序员 浏览量:
Pandas中提供了一个date_range()函数,主要用于生成一个具有固定频率的DatetimeIndex对象,该函数的语法格式如下:
pandas.date_range(start=None, end=None, periods=None, freq=None, tz=None, normalize=False, name=None, closed=None, **kwargs)
部分参数的含义如下:
(1)start:表示起始日期,默认为None。
(2)end:表示终止日期,默认为None。
(3)periods:表示产生多少个时间戳索引值。若设置为None,则start与end必须不能为None。
(4)freq:表示以自然日为单位,这个参数用来指定计时单位,比如‘5H’表示每隔5个小时计算一次。
(5)tz:表示时区,比如Asia/Hong_Kong。
(6)normalize:接收布尔值,默认值为False。如果设为True的话,那么在产生时间戳索引值之前,会将start和end都转化为当日的午夜0点。
(7)name:给返回的时间序列索引指定一个名字。
(8)closed:表示start和end这个区间端点是否包含在区间内,可以取值为如下选项:
◆left:表示左闭右开区间。
◆right:表示左开右闭区间。
◆None:表示两边都是闭区间。
需要注意的是,start、end、periods、freq这四个参数至少要指定三个参数,否则会出现错误。
当调用date_range()函数创建DatetimeIndex对象时,如果只是传入了开始日期(start参数)与结束日期(end参数),则默认生成的时间点是按天计算的,即freq参数为D,示例代码如下。
In [17]: # 创建DatetimeIndex对象时,只传入开始日期与结束日期 pd.date_range('2018/08/10', '2018/08/20') Out[17]: DatetimeIndex(['2018-08-10', '2018-08-11', '2018-08-12', '2018-08-13', '2018-08-14', '2018-08-15', '2018-08-16', '2018-08-17', '2018-08-18', '2018-08-19', '2018-08-20'], dtype='datetime64[ns]', freq='D')
如果只是传入了开始日期或结束日期,则还需要用periods参数指定产生多少个时间戳,示例代码如下。
In [18]: # 创建DatetimeIndex对象时,传入start与periods参数 pd.date_range(start='2018/08/10', periods=5) Out[18]: DatetimeIndex(['2018-08-10', '2018-08-11', '2018-08-12', '2018-08-13', '2018-08-14'], dtype='datetime64[ns]', freq='D') In [19]: # 创建DatetimeIndex对象时,传入end与periods参数 pd.date_range(end='2018/08/10', periods=5) Out[19]: DatetimeIndex(['2018-08-06', '2018-08-07', '2018-08-08', '2018-08-09
由此可知,起始日期与结束日期定义了时间序列索引的严格边界。