将列插值到目标 x 坐标后出现意外结果

unexpected result after interpolating columns to target x-coordinates

我正在使用 np.interp 将 csv 文件中的两列数据线性插入到目标(预期)值列表中。我将目标值转换为 numpy 数组。 csv 文件中的每一行对应于目标数据中的每个值。

这是一个数据样本:

x= [246.72,   8.59, 194.4 , 145.73, 198.27]

v11         v12         
22.028949   22.863912   
0           9.006818    
134.238326  102.571956  
94.222921   107.823484  
200.163640  212.396264  

脚本:

df['intrepo_v'] = pd.Series(dtype= 'float')
df['intrepo_v'] = np.interp(x, df['v11'].values,
df['v12'].values)

结果:

42.579263
22.863912
42.579263
42.579263
42.579263

此插值的目的是创建 intrepo_v 并将值从 v11v12 移动到一些接近 x 的值。目前结果不接近 v11v12intrepo_v。谁能提出解决这个问题的方法?

对于 numpy.interp 值必须递增(请参阅帮助),scipy 不假定值已排序,请尝试:

import scipy    
function=scipy.interpolate.interp1d(df['v11'].values,df['v12'].values)


df['intrepo_v'] =function(x)

或者使用 numpy

对输入值进行排序