首頁常見問題正文

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

更新時間:2022-12-29 來源:黑馬程序員 瀏覽量:

IT培訓(xùn)班

  Pandas中提供了一個date_range()函數(shù),主要用于生成一個具有固定頻率的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)生多少個時間戳索引值。若設(shè)置為None,則start與end必須不能為None。

  (4)freq:表示以自然日為單位,這個參數(shù)用來指定計(jì)時單位,比如‘5H’表示每隔5個小時計(jì)算一次。

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

  (6)normalize:接收布爾值,默認(rèn)值為False。如果設(shè)為True的話,那么在產(chǎn)生時間戳索引值之前,會將start和end都轉(zhuǎn)化為當(dāng)日的午夜0點(diǎn)。

  (7)name:給返回的時間序列索引指定一個名字。

  (8)closed:表示start和end這個區(qū)間端點(diǎn)是否包含在區(qū)間內(nèi),可以取值為如下選項(xiàng):

  ◆left:表示左閉右開區(qū)間。

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

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

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

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

In [17]: # 創(chuàng)建DatetimeIndex對象時,只傳入開始日期與結(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)生多少個時間戳,示例代碼如下。

In [18]: # 創(chuàng)建DatetimeIndex對象時,傳入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對象時,傳入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é)束日期定義了時間序列索引的嚴(yán)格邊界。

分享到:
在線咨詢 我要報名
和我們在線交談!