我正在使用一个DataFrame,它具有索引和列的已排序浮点值:
9 15
5.0 2 9
8.0 3 1
我想使用此DataFrame作为基础来计算给定索引和列组合的值,例如(6.0,12),其中DataFrame中的值将用于插值:
9 12 15
5.0 2 - 9
6.0 (ci) (ri) (ci)
8.0 3 - 1
通过对行中的值进行插值来计算(ri)值,并且使用列中的值对(ci)值进行插值,并且中间值是我们想要获得的值。计算的顺序是首先使用相关列的插值计算行中的所有值,然后在行中插入最终值。
对于上面的示例,计算的值将如下:
9 12 15
5.0 2 - 9
6.0 2.33 4.33 6.33
8.0 3 - 1
我们在这个例子中寻找的值是4.33。
我们可以假设条目对将始终属于DataFrame索引和列值的限制,并且它也可能与值匹配,因此例如对于(5.0,9),返回值应为2。
答案 0 :(得分:1)
我认为你可以尝试numpy.interp
l=[np.interp(6,df.index, df[x]) for x in df.columns]
np.interp(12,df.columns.astype(int), l)
Out[1140]: 4.333333333333334