我試圖對齊多個DataFrame
s或Series之間的索引值,我正在使用 Series.interpolate,但它似乎沒有正確插入。或者我可能誤解了一些東西。這裏有一個小例子:Series.interpolate中可能存在的錯誤
x1 = np.array([0, 0.25, 0.77, 1.2, 1.4, 2.6, 3.1])
y1 = np.array([0, 1.1, 0.5, 1.5, 1.2, 2.1, 2.4])
x2 = np.array([0, 0.25, 0.66, 1.0, 1.2, 1.4, 3.1])
y2 = np.array([0, 0.2, 0.8, 1.1, 2.2, 0.1, 2.4])
df1 = DataFrame(data=y1, index=x1, columns=['A'])
df1.plot(marker='o')
df2 = DataFrame(data=y2, index=x2, columns=['A'])
df2.plot(marker='o')
df3=df1 - df2
df3.plot(marker='o')
print df3
def resample(signals):
aligned_x_vals = reduce(lambda s1, s2: s1.index.union(s2.index), signals)
return map(lambda s: s.reindex(aligned_x_vals).apply(Series.interpolate), signals)
sig1, sig2 = resample([df1, df2])
sig3 = sig1 - sig2
plt.plot(df1.index, df1.values, marker='D')
plt.plot(sig1.index, sig1.values, marker='o')
plt.grid()
plt.figure()
plt.plot(df2.index, df2.values, marker='o')
plt.plot(sig2.index ,sig2.values, marker='o')
plt.grid()
我希望sig1和sig2有比df1和df2更多的點數,但插值的值。有幾點不重疊。這是一個錯誤還是用戶錯誤?我正在使用v0.7.3
謝謝。
謝謝。我想我必須習慣從現在開始考慮源代碼。你認爲我應該在問題跟蹤器中打開一個錯誤。恕我直言,如果索引是浮點類型,那麼它不應該做這個假設。 – dailyglen
@Slothman:Bug報告是一個好主意。我會期待像你期望的一樣的行爲。 – Avaris
我在這裏創建了一個問題:https://github.com/pydata/pandas/issues/1255 –