この奇妙な行動を説明できますか?
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 以外の場合、新しいインデックス値が一致する値を持つ古い行を「見つけられない」ことがわかりました。つまり、克服されていない精度の問題があります。これは、補間を試みる前にインデックスを強制的に float にした場合でも当てはまります。何が起こっているのか、および/またはこれを行う正しい方法は何ですか? を使用して、0.1の増分で動作させることができました
reindex( np.array(map(round,arange(1985,2010+dt,dt)*10))/10.0 )
ところで、これは、多数の列を線形補間する最初のステップとして行っています (たとえば、「爆弾」はその 1 つです)。それを行うためのより良い方法があれば、私は喜んでまっすぐになります.