如何將月度數(shù)據(jù)轉(zhuǎn)換成日度數(shù)據(jù)?
當(dāng)我準(zhǔn)備用LSTM神經(jīng)網(wǎng)絡(luò)模型去預(yù)測商品的價格的時候,其中考慮到了與商品有關(guān)的如銷量,價格,人均可支配收入,cpi等維度。問題是這些維度有一些是以天為單位的,有些是以月為單位的,只有統(tǒng)一了單位才可以進(jìn)行模型訓(xùn)練。我看到有很多類似價格預(yù)測的文獻(xiàn)里,作者有提到用插值法將月度數(shù)據(jù)轉(zhuǎn)換為日度數(shù)據(jù),但是沒有提到具體怎么操作。我在百度上搜,大多數(shù)是將日度數(shù)據(jù)轉(zhuǎn)換成月度數(shù)據(jù),很少看見有用的方法。今天這里就想教大家怎么將月度數(shù)據(jù)合理的轉(zhuǎn)換成日度數(shù)據(jù)。假如我們有以下月度數(shù)據(jù):
?
該如何將他們轉(zhuǎn)成日度數(shù)據(jù)呢?
方法一:?
當(dāng)月的每一天都按照月度數(shù)據(jù)填補,如:
?

這樣操作起來最簡單,但是失去了一些數(shù)據(jù)的規(guī)律性和連貫性。
方法二:
插值法(interpolation),如:
?

這樣是不是就看起來合理了許多,但是可能離真實情況可能還是有很大差別,但是比方法一更容易接受和理解。
俗話說,巧婦難為無米之炊。當(dāng)我們?nèi)鄙傩枰娜斩葦?shù)據(jù)的時候,用插值法就是一個很好的辦法。
下面是具體的例子:
import pandas as pdimport numpy as npimport matplotlib.pyplot as pltdf=pd.read_excel('cpi 月.xlsx')y1=df['fruit_cpi']x1=df['Date']plt.plot(x1,y1)df.shape

?
df1=df.set_index('Date').resample('D').interpolate()date = pd.date_range(start='04/01/2018', periods=len(df1.index))df1.insert(0,'Date',date,True)
y_afterIp=df1['fruit_cpi']x_afterIp=df1['Date']plt.plot(x_afterIp,y_afterIp)df1.shape

?
數(shù)據(jù)的行數(shù)就從36變到了1066,意味著我們把三年的月度數(shù)據(jù)轉(zhuǎn)換成了三年的日度數(shù)據(jù)。而plot出來的圖與之前并沒有什么大的改變,意味著我們保留了數(shù)據(jù)的規(guī)律性。
如果有不足之處,歡迎評論區(qū)里指出來,十分感謝??。
