更新時(shí)間:2022-12-29 來源:黑馬程序員 瀏覽量:
Pandas中提供了一個(gè)date_range()函數(shù),主要用于生成一個(gè)具有固定頻率的DatetimeIndex對象,該函數(shù)的語法格式如下:
pandas.date_range(start=None, end=None, periods=None, freq=None, tz=None, normalize=False, name=None, closed=None, **kwargs)
部分參數(shù)的含義如下:
(1)start:表示起始日期,默認(rèn)為None。
(2)end:表示終止日期,默認(rèn)為None。
(3)periods:表示產(chǎn)生多少個(gè)時(shí)間戳索引值。若設(shè)置為None,則start與end必須不能為None。
(4)freq:表示以自然日為單位,這個(gè)參數(shù)用來指定計(jì)時(shí)單位,比如‘5H’表示每隔5個(gè)小時(shí)計(jì)算一次。
(5)tz:表示時(shí)區(qū),比如Asia/Hong_Kong。
(6)normalize:接收布爾值,默認(rèn)值為False。如果設(shè)為True的話,那么在產(chǎn)生時(shí)間戳索引值之前,會將start和end都轉(zhuǎn)化為當(dāng)日的午夜0點(diǎn)。
(7)name:給返回的時(shí)間序列索引指定一個(gè)名字。
(8)closed:表示start和end這個(gè)區(qū)間端點(diǎn)是否包含在區(qū)間內(nèi),可以取值為如下選項(xiàng):
◆left:表示左閉右開區(qū)間。
◆right:表示左開右閉區(qū)間。
◆None:表示兩邊都是閉區(qū)間。
需要注意的是,start、end、periods、freq這四個(gè)參數(shù)至少要指定三個(gè)參數(shù),否則會出現(xiàn)錯誤。
當(dāng)調(diào)用date_range()函數(shù)創(chuàng)建DatetimeIndex對象時(shí),如果只是傳入了開始日期(start參數(shù))與結(jié)束日期(end參數(shù)),則默認(rèn)生成的時(shí)間點(diǎn)是按天計(jì)算的,即freq參數(shù)為D,示例代碼如下。
In [17]: # 創(chuàng)建DatetimeIndex對象時(shí),只傳入開始日期與結(jié)束日期 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')
如果只是傳入了開始日期或結(jié)束日期,則還需要用periods參數(shù)指定產(chǎn)生多少個(gè)時(shí)間戳,示例代碼如下。
In [18]: # 創(chuàng)建DatetimeIndex對象時(shí),傳入start與periods參數(shù) 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]: # 創(chuàng)建DatetimeIndex對象時(shí),傳入end與periods參數(shù) pd.date_range(end='2018/08/10', periods=5) Out[19]: DatetimeIndex(['2018-08-06', '2018-08-07', '2018-08-08', '2018-08-09
由此可知,起始日期與結(jié)束日期定義了時(shí)間序列索引的嚴(yán)格邊界。