如何在pandas中合并/ join / concat / align两个具有不同时间间隔索引和大小的dfs

时间:2018-04-26 19:17:03

标签: python pandas time-series

关于这个主题的文章很多,但我仍然无法解决这个问题:

我的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')]

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

1 个答案:

答案 0 :(得分:0)

我不知道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']