你能解釋這種奇怪的行爲嗎?使用帶有浮點數的pandas reindex:插值
df=pd.DataFrame({'year':[1986,1987,1988],'bomb':arange(3)}).set_index('year')
In [9]: df.reindex(arange(1986,1988.125,.125))
Out[9]:
bomb
1986.000 0
1986.125 NaN
1986.250 NaN
1986.375 NaN
1986.500 NaN
1986.625 NaN
1986.750 NaN
1986.875 NaN
1987.000 1
1987.125 NaN
1987.250 NaN
1987.375 NaN
1987.500 NaN
1987.625 NaN
1987.750 NaN
1987.875 NaN
1988.000 2
In [10]: df.reindex(arange(1986,1988.1,.1))
Out[10]:
bomb
1986.0 0
1986.1 NaN
1986.2 NaN
1986.3 NaN
1986.4 NaN
1986.5 NaN
1986.6 NaN
1986.7 NaN
1986.8 NaN
1986.9 NaN
1987.0 NaN
1987.1 NaN
1987.2 NaN
1987.3 NaN
1987.4 NaN
1987.5 NaN
1987.6 NaN
1987.7 NaN
1987.8 NaN
1987.9 NaN
1988.0 NaN
當增量以外的任何其他.125,我發現,新的索引值不會「發現」具有匹配值的舊行。即有一個精確的問題沒有被克服。即使我在嘗試插入之前強制索引爲浮點數,情況也是如此。發生了什麼事情和/或什麼是正確的做法? 我已經能夠通過使用
reindex( np.array(map(round,arange(1985,2010+dt,dt)*10))/10.0)
順便說得到它以0.1增量工作,我這樣做是爲線性內插了一些列的第一個步驟(例如「炸彈」是其中之一)。如果有更好的方法來做到這一點,我會很樂意設置。
看起來像你真正想要一個datelike指數做這樣的事情,還是你真的出於某種原因想要一個浮動指標?你最終想要什麼? – Jeff
是的,我想它是有約會的,但除了一年的小數點以外,我真的不需要特別的/聰明的功能。最終的輸出?是這樣的:http://www.youtube.com/watch?v=1BGzzykW_QM&feature=youtu.be即我有數據好幾年了,我想插入列值到一個(更精細)的網格,以順利進行動畫。 – CPBL