重新插入数据帧,使其与另一个(非常相关的)数据帧对齐

2024-05-14 22:39:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我有两个具有相同列名的数据帧,['x', 'y']。没有一个数据代表时间。这两个数据帧的行数相同。它们的'x'列总是稍微错位

Dataframe A,我认为是“黄金”(或理论上的,如果你愿意)数据集,有以下条目:

x: [0, 1, 2]
y: [0, 1, 2]

Dataframe B可能是我从电子设备工作台收集的一些数据,它有以下条目:

x: [0, 1.03, 1.98]
y: [0, 1.05, 2.03]

我想做的是重新对齐dataframeb,使其在dataframea具有的相同x点处表示数据。为了说明这一点,我想将数据帧B转换为如下所示:

x: [0, 1,    2]
y: [0, 1.02, 2.05]

我是如何得到y的值的?一张图片可以很好地解释我曾经做过的类似三角形:

similar triangles

pandas是否有一个内置函数来执行此操作?有没有图书馆可以帮我做这件事(否则我就得从头开始写)

更新1

看起来scipy.interpolate.interp1d可以优雅地解决这个问题


Tags: 数据dataframepandas时间图片条目代表理论
1条回答
网友
1楼 · 发布于 2024-05-14 22:39:45

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

相关问题 更多 >

    热门问题