在進行時間序列的機器學習時,時常會遇到資料缺失部分時間序列的狀況,例如從銷售資料中 groupby,未必每天都有銷售發生,這是就會產生某幾天的時間序列遺漏的問題,在此提供解決方案。
資料範例
假設一個時間序列的資料如下 data.csv
:
ds | y |
---|
2022-12-30 | 5 |
2023-01-03 | 4 |
2023-01-04 | 11 |
2023-01-05 | 6 |
2023-01-07 | 7 |
讀取 csv 檔案
產生時間序列索引
這裡就以 DS 的最小日期作為開始時間、最大日期作為結束時間,而單位則是 D (日)。
這裡你就會得到一個從 2022-12-30
到 2023-01-07
的時間序列索引
將時間索引回填進 data,並補 y 值
由於這邊我假設 y
是銷售資料,因此就直接補 0
重命名欄位的部分,由於 reset_index
會將 index 欄位的名稱設為 index
,所以可以重新命名把欄位名設回你所需要使用的欄位,像是 ds
、y
是 Prophet 所指定的欄位名稱。
另外,如果你不想把空值設為 0,而是想另外用其他方式來補空值,則不要設定 fill_value 參數即可,pandas 會保留那些缺失值的欄位為 NaN
,則可以利用其他方式進行資料遺漏值處理。