首頁常見問題正文

Python時(shí)間序列分析:時(shí)期的頻率轉(zhuǎn)換

更新時(shí)間:2022-08-18 來源:黑馬程序員 瀏覽量:

  在工作中統(tǒng)計(jì)數(shù)據(jù)時(shí),可能會(huì)遇到類似于這樣的問題,比如將某年的報(bào)告轉(zhuǎn)換為季報(bào)告或者月報(bào)告。為了解決這個(gè)問題,Pandas中提供了一個(gè)asfreq()方法來轉(zhuǎn)換日期的頻率,比如把某年轉(zhuǎn)換為某月。

  asfreq()方法的語法格式如下:

asfreq(freq, method=None, how=None, normalize=False, fill_value=None)

  部分參數(shù)含義如下:

  (1)freq:表示計(jì)時(shí)單位,可以是DateOffset對(duì)象或字符串。

  (2)how:可以取值為start或end,默認(rèn)為end,僅適用于PeriodIndex。

  (3)normalize:布爾值,默認(rèn)為False,表示是否將時(shí)間索引重置為午夜。

  (4)fill_value:用于填充缺失值的值,在升采樣期間應(yīng)用。

  為了讓讀者更好地理解,接下來,通過一段示例來演示如何將年度時(shí)期轉(zhuǎn)換為年初或年末的月度時(shí)期,示例代碼如下。

In [40]: # 創(chuàng)建時(shí)期對(duì)象
         period=pd.Period('2017', freq='A-DEC')
         # 轉(zhuǎn)換時(shí)期頻率
period.asfreq('M', how='start')
Out[40]: Period('2017-01', 'M')
In [41]:Period.asfreq('M', how='end')
Out[41]:Period('2017-12', 'M')

  上述示例中,首先創(chuàng)建了一個(gè)表示2017年全年的時(shí)期對(duì)象period,然后調(diào)用asfreq()方法轉(zhuǎn)換頻率為每月,此時(shí)period所表示的范圍為2017-01~2017-12并分別獲取了period的開始和結(jié)束。

  從輸出結(jié)果看出,整個(gè)時(shí)間段的起始日期為2017-01,結(jié)束日期為2017-12。

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