我需要在pandas.DataFrame
的两列之间进行插值,以填充它们之间的列。
下面是我的data frame
的几行,要填充的列是col2
:
col1 col2 col3
2.35 1 2.37
2.47 1 2.49
2.51 1 2.53
2.57 1 2.58
2.54 1 2.57
所以对于插值,我想使用numpy.interp(x,xp,fp)
,但我不知道如何组织数据以便能够使用它。这是因为每行的插值应该在col1
和col3
之间。
例如,对于第一行,我需要它如下所示:
xp=[1,3]
fp=[2.47,2.49]
x=2
y=numpy.interp(x,xp,fp)
然后用y
填充col2
的第一行。我需要一次又一次地为每一行这样做。
怎么做
如前所述,x值是静态的(除非我误解了您的问题),值为1和3。您需要在这些值和两个改变的y值之间进行线性插值。您只需平均y值,这就是线性插值。不要忽视一些花哨的简单/明显的解决方案(我总是努力记住的建议)
开始编辑
Andre的解决方案应该有效(我自己没有测试过,但应该有效)。然而,这需要迭代每一行,这可能会很慢。此外,还有一个简单的数学解决方案,允许您对阵列进行操作,这应该会更快
线性插值遵循以下一般形式:
将其放在数据帧/代码方面:
我认为这是正确的,但上面的公式成立。只需在代码中实现它或循环每一行并调用numpy.interp函数。不管怎样,你都应该没事
这将使您迭代每一行,替换两个单元格之间的值。但插值似乎不起作用。我没有太多的经验,所以我无法在网上找到一个简单的解决方法。这是唯一一条不改变值的线。(我不知道xp或x做什么,所以我保留了它们)
相关问题 更多 >
编程相关推荐