首頁(yè)常見(jiàn)問(wèn)題正文

時(shí)間序列分析:創(chuàng)建固定頻率的時(shí)間序列

更新時(shí)間:2022-12-29 來(lái)源:黑馬程序員 瀏覽量:

IT培訓(xùn)班

  Pandas中提供了一個(gè)date_range()函數(shù),主要用于生成一個(gè)具有固定頻率的DatetimeIndex對(duì)象,該函數(shù)的語(yǔ)法格式如下:

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ù)用來(lái)指定計(jì)時(shí)單位,比如‘5H’表示每隔5個(gè)小時(shí)計(jì)算一次。

  (5)tz:表示時(shí)區(qū),比如Asia/Hong_Kong。

  (6)normalize:接收布爾值,默認(rèn)值為False。如果設(shè)為T(mén)rue的話,那么在產(chǎn)生時(shí)間戳索引值之前,會(huì)將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:表示左閉右開(kāi)區(qū)間。

  ◆right:表示左開(kāi)右閉區(qū)間。

  ◆None:表示兩邊都是閉區(qū)間。

  需要注意的是,start、end、periods、freq這四個(gè)參數(shù)至少要指定三個(gè)參數(shù),否則會(huì)出現(xiàn)錯(cuò)誤。

  當(dāng)調(diào)用date_range()函數(shù)創(chuàng)建DatetimeIndex對(duì)象時(shí),如果只是傳入了開(kāi)始日期(start參數(shù))與結(jié)束日期(end參數(shù)),則默認(rèn)生成的時(shí)間點(diǎn)是按天計(jì)算的,即freq參數(shù)為D,示例代碼如下。

In [17]: # 創(chuàng)建DatetimeIndex對(duì)象時(shí),只傳入開(kāi)始日期與結(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')

  如果只是傳入了開(kāi)始日期或結(jié)束日期,則還需要用periods參數(shù)指定產(chǎn)生多少個(gè)時(shí)間戳,示例代碼如下。

In [18]: # 創(chuàng)建DatetimeIndex對(duì)象時(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對(duì)象時(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)格邊界。

分享到:
在線咨詢 我要報(bào)名
和我們?cè)诰€交談!