我有一個時間序列資料框,價格列中有一些缺失值,我想用前一周的價格替換它們。缺失值的范圍是 2015-01-01 到 2015-01-07。
首先,我嘗試通過df.loc[].
對不起,如果我的代碼完全是廢話。我對python很陌生并且正在苦苦掙扎。
import pandas as pd
import numpy as np
time = pd.date_range(start='2015-01-01', end='2015-01-20', freq='D')
sampl = np.random.uniform(low=-4.5, high=34.0, size=(20,))
df = pd.DataFrame({"prices":
sampl}, index = time)
df = df.replace([df.loc['2015-01-01':'2015-01-07']],['NaN'])
df
所以我嘗試了
df = df.replace([df.loc['2015-01-01':'2015-01-07']],[ df.loc['2015-01-08':'2015-01-14']])
用前一周的值替換缺失值。但它的效果不是很好。在這里,我創建了一個時間序列作為示例。我的原始系列具有從 2015-01-01 00:00:00 到 2015-12-31 23:00:00 的每小時資料,缺失值位于 2015-01-01 到 2015-01-04 的范圍內。
我希望有人有更好的方法。
uj5u.com熱心網友回復:
可以向后移動資料嗎?
import pandas as pd
import numpy as np
time = pd.date_range(start='2015-01-01', end='2015-01-20', freq='D')
sampl = np.random.uniform(low=-4.5, high=34.0, size=(20,))
df = pd.DataFrame({"prices":
sampl}, index = time)
df = df.replace([df.loc['2015-01-01':'2015-01-07']],['NaN'])
new_data = df.shift(-7).loc["2015-01-01":"2015-01-07"]
df.loc["2015-01-01":"2015-01-07"] = new_data
df
示例輸出

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/532276.html
