对于具有sorted,float索引和列的DataFrame,根据DataFrame值

时间:2018-02-21 13:51:49

标签: python pandas numpy dataframe interpolation

我正在使用一个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。

1 个答案:

答案 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