首頁常見問題正文

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

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

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

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

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

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

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

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

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

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

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

In [40]: # 創(chuàng)建時期對象
         period=pd.Period('2017', freq='A-DEC')
         # 轉(zhuǎn)換時期頻率
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)建了一個表示2017年全年的時期對象period,然后調(diào)用asfreq()方法轉(zhuǎn)換頻率為每月,此時period所表示的范圍為2017-01~2017-12并分別獲取了period的開始和結(jié)束。

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

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