Я нашел что-то, что работает на 90%, однако у него есть два недостатка: 1) индекс и столбцы должны строго увеличиваться, 2) для набора из n входных пар он строит массив результатов nxn вместо просто nРезультаты (например, ниже для 3 пар входных точек мне нужно только 3 результирующих значения, используя этот код, я получу 9 значений как все комбинации входных точек).
Вот что я нашел:
import scipy
import scipy.interpolate
import numpy as np
import pandas as pd
x=np.array([0,10,25,60,100]) #Index
y=np.array([1000,1200,1400,1600]) #Column
data=np.array([[60,54,33,0],
[50,46,10,0],
[42,32,5,0],
[30,30,2,0],
[10,10,0,0]])
Table_to_Interpolate=pd.DataFrame(data,index=x,columns=y)
sp=scipy.interpolate.RectBivariateSpline(x,y,data, kx=1, ky=1, s=0)
scipy.interpolate.RectBivariateSpline(x,y,data, kx=1, ky=1, s=0)
Input_Xs=12, 44, 69
Input_Ys=1150, 1326, 1416
Results=pd.DataFrame(sp(Input_Xs, Input_Ys), index=Input_Xs, columns=Input_Ys,)
Это не идеально, но это лучшее, что я мог найти.