首页 > 解决方案 > 如何在熊猫中合并/加入/连接/对齐两个具有不同时间间隔索引和大小的df

问题描述

关于这个主题的文章很多,但我仍然无法弄清楚这一点:

我有 df1 的时间间隔不均匀的行,例如:

Time                   a  
2015-04-07 09:09:48    185.25
2015-04-07 09:30:50    190.50
2015-04-07 09:31:07    187.00
2015-04-07 09:35:23    190.60
2015-04-07 09:47:43    185.30

然后我有一个更大的 df2 也有不均匀的行,例如:

time                 b      c      
2016-06-08 09:09:00  32.30  32.80
2016-06-08 09:09:48  32.35  32.89
2016-06-08 09:24:22  32.30  32.81
2016-06-08 09:30:50  32.40  32.84

我想用 df1 中的每一行创建一个新的 df,如果有的话,可以使用 df2 中的时间对应行。

预期结果:

Time                       a        b       c
    2015-04-07 09:09:48    185.25   32.35   32.89
    2015-04-07 09:30:50    190.50   32.40   32.84
...

是否可以在自定义频率上重新采样,即 df1.index?

欢迎任何提示或线索:)

更新

少处理一个问题,我去掉了 df2 中的重复条目:

df2[~df2.index.duplicated(keep='last')]

我正在寻找熊猫解决方案。上面的示例相应更新。

标签: pythonpandastime-series

解决方案


我不知道 pandas 是否有任何库,但这应该可以使用字典轻松解决。

从df1构建dict_1,从df2构建dict_2,以时间为键,然后:

for time_key in dict_1:
    if time_key in dict_2:
       dict_1[time_key]['b'] = dict_2[time_key]['b']
       dict_1[time_key]['c'] = dict_2[time_key]['c']

推荐阅读