按时间戳合并pandas数据框

3
我有几个以时间戳为索引的Pandas数据帧,我想将它们合并成一个数据帧,并匹配最近的时间戳。 例如,我想要如下结果:
a = 
                         CPU
2021-03-25 13:40:44.208  70.571797
2021-03-25 13:40:44.723  14.126870
2021-03-25 13:40:45.228  17.182844

b = 
                          X   Y
2021-03-25 13:40:44.193   45  1
2021-03-25 13:40:44.707   46  1
2021-03-25 13:40:45.216   50  2

a + b =
                         CPU       X   Y
2021-03-25 13:40:44.208  70.571797 45  1
2021-03-25 13:40:44.723  14.126870 46  1
2021-03-25 13:40:45.228  17.182844 50  2

对我来说,在最终的 DataFrame 中确切的时间戳并不重要。

顺便问一下,是否有一种简单的方法可以将“绝对”时间戳转换为从开始计时的时间(以秒或毫秒为单位)? 以这个示例为例:


     CPU       X   Y
0.0  70.571797 45  1
0.5  14.126870 46  1
1.0  17.182844 50  2
1个回答

2

使用 merge_asof 函数,并设置 direction='nearest'

pd.merge_asof(df1, df2, left_index=True, right_index=True, direction='nearest')

这可能会奏效 - 问题是,如果我有更多的数据框,是否应该在循环中合并它们? - konserw
一个想法是使用这个 - jezrael
1
谢谢 @jerazel,你的回答和链接贴文是我需要的完美组合。 - konserw

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接