对于具有排序浮点索引和列的DataFrame,基于DataFrame值使用线性插值计算一个值

4

我正在处理一个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。

请明确一下,你的(ci)值将是2.5和5吗? - jpp
好问题。不,插值应该考虑索引和列值。 - Krzysztof Słowiński
2
你能提供填好(ri)和(ci)值的例子吗? - Jon Clements
1
好的,我意识到规范并不清晰。 - Krzysztof Słowiński
1个回答

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接