对于具有排序、浮点索引和列的 DataFrame,根据 DataFrame 值使用线性插值计算值

For a DataFrame with sorted, float index and columns, calculate a value using linear interpolation, based on a DataFrame values

我正在使用 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) return 值应该是 2.

我觉得你可以试试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