我有两个具有相同列名的数据框,['x', 'y']. 没有任何数据代表时间。这两个数据帧都具有相同的行数。他们的'x'列总是稍微错位。Dataframe A,我认为是“黄金”(或者理论上,如果你愿意的话)数据集,具有以下条目:x: [0, 1, 2]y: [0, 1, 2]数据框 B,可能是我从电子工作台收集的一些数据,具有以下条目:x: [0, 1.03, 1.98]y: [0, 1.05, 2.03]我想要做的是重新对齐 Dataframe B,以便它代表xDataframe A 所具有的相同点的数据。为了说明,我想转换 Dataframe B 使其看起来像这样:x: [0, 1, 2]y: [0, 1.02, 2.05]我是如何得到的值的y?一张图片可以最好地解释我曾经做过的类似三角形:是否pandas有内置函数来执行此操作?有没有图书馆可以帮助我做到这一点?(否则我将不得不从头开始编写)更新 1看起来scipy.interpolate.interp1d可以优雅地解决这个问题。
1 回答
哈士奇WWW
TA贡献1799条经验 获得超6个赞
我能想到的最接近的pandas是reindex().interpolate(). 玩我认为这可能是你想要的method选项:interpolate()
new_x = sorted(pd.concat((df1.x,df2.x)).unique())
df2.set_index('x').reindex(new_x).interpolate(method='krogh')
输出:
y
x
0.00 0.000000
1.00 1.019233
1.03 1.050000
1.98 2.030000
2.00 2.050751
添加回答
举报
0/150
提交
取消