【发布时间】:2020-03-17 13:46:34
【问题描述】:
我需要在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 的第一行。我需要为每一行一次又一次地这样做。
怎么样?
【问题讨论】:
-
两个值之间的线性插值只是平均值......或者我错过了什么?
-
在这个例子中是平均值,但后来我需要用第 7 列和第 10 列填充第 8,9 列,所以我确实需要使用插值。
-
xp=[1,3]- 1 和 3 来自哪里? -
1 是
col1,3 是col3 -
@SharonAsayag 我在下面更新了我的答案。不过,您可以自己进行线性插值,而无需多次调用 numpy.interp,这应该很慢。
标签: python pandas numpy dataframe interpolation