大多数numpy / scipy函数都要求参数仅是“
array_like”,
iterp1d也不例外。幸运的是,Series和Dataframe都是“
array_like”,因此我们不需要离开熊猫:
import pandas as pdimport numpy as npfrom scipy.interpolate import interp1ddf = pd.Dataframe([np.arange(1, 6), [1, 8, 27, np.nan, 125]]).TIn [5]: dfOut[5]: 0 10 1 11 2 82 3 273 4 NaN4 5 125df2 = df.dropna() # interpolate on the non nanf = interp1d(df2[0], df2[1], kind='cubic')#f(4) == array(63.9999999999992)df[1] = df[0].apply(f)In [10]: dfOut[10]: 0 10 1 11 2 82 3 273 4 644 5 125
注意:我想不出一个将数据框传递给第二个参数(y
)的例子……但这也应该起作用。



