为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

明月笑刀无情 2022-06-07 16:34:40
我有两个具有相同列名的数据框,['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


查看完整回答
反对 回复 2022-06-07
  • 1 回答
  • 0 关注
  • 189 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信