我的熊貓陣列看起來像這樣......
DOY Value
0 5 5118
1 10 5098
2 15 5153
我一直在嘗試重新采樣我的資料并使用 pandas resample 函式填補空白。我擔心的是,由于我試圖在不使用直接日期時間值的情況下重新采樣,我將無法重新采樣我的資料。
我嘗試解決這個問題是使用以下代碼行,但收到??錯誤訊息說我正在使用范圍索引。也許我需要以某種方式使用 Period Index,但我不知道該怎么做。
inter.resample('1D').mean().interpolate()
這是我的預期結果
DOY Value
0 5 5118
1 6 5114
2 7 5110
3 8 5106
4 9 5102
5 10 5098
: : :
10 15 5153
uj5u.com熱心網友回復:
轉換to_datetime,執行resample然后洗掉不需要的列:
df["date"] = pd.to_datetime(df["DOY"].astype(str),format="%j")
output = df.resample("D", on="date").last().drop("date", axis=1).interpolate().reset_index(drop=True)
>>> output
DOY Value
0 5.0 5118.0
1 6.0 5114.0
2 7.0 5110.0
3 8.0 5106.0
4 9.0 5102.0
5 10.0 5098.0
6 11.0 5109.0
7 12.0 5120.0
8 13.0 5131.0
9 14.0 5142.0
10 15.0 5153.0
uj5u.com熱心網友回復:
pd.DataFrame.interpolate在索引上作業。因此,讓我們從設定一個適當的索引開始,然后我們將在其上插入一個新的索引。
d0 = df.set_index('DOY')
idx = pd.RangeIndex(d0.index.min(), d0.index.max() 1, name='DOY')
d0.reindex(idx).interpolate().reset_index()
DOY Value
0 5 5118.0
1 6 5114.0
2 7 5110.0
3 8 5106.0
4 9 5102.0
5 10 5098.0
6 11 5109.0
7 12 5120.0
8 13 5131.0
9 14 5142.0
10 15 5153.0
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/456776.html
