【发布时间】:2022-01-13 19:05:51
【问题描述】:
如何在两个数据帧上使用 scipy interpolate 来插入行上升?
例如,如果我有:
dfx = pd.DataFrame({"a": [0.1, 0.2, 0.5, 0.6], "b": [3.2, 4.1, 1.1, 2.8]})
dfy = pd.DataFrame({"a": [0.8, 0.2, 1.1, 0.1], "b": [0.5, 1.3, 1.3, 2.8]})
display(dfx)
display(dfy)
假设我想对 y(x=0.5) 进行插值,我怎样才能将结果放入一个可以放入新数据帧的数组中?
预期结果是:[0.761290323 0.284615385 1.1 -0.022727273]
例如,对于第一行,您可以看到预期值为 0.761290323:
x = [0.1, 3.2] # from dfx, row 0
y = [0.8,0.5] # from dfy, row 0
fig, ax = plt.subplots(1,1)
ax.plot(x,y)
f = scipy.interpolate.interp1d(x,y)
out = f(0.5)
print(out)
我尝试了以下但收到ValueError: x and y arrays must be equal in length along interpolation axis.
f = scipy.interpolate.interp1d(dfx, dfy)
out = np.exp(f(0.5))
print(out)
【问题讨论】:
-
逐行插值是什么意思?
x这里是什么? -
@QuangHoang OP 更新
标签: pandas scipy interpolation