如何合并两个数据框架,基于日期(毫秒精度),丢弃过时的条目

2024-04-25 03:55:23 发布

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

假设我们有两个时间序列数据帧:df1df2。在df1上观察的频率约为1秒,在df2上观察的频率约为1.1秒。数据有时会有缺口。假设它们看起来像:

df1

index_1                 | something_else_1 | ...
2019-10-10 13:14:10.543 | ...
2019-10-10 13:14:11.700 | ...
2019-10-10 13:14:14:121 | ...
2019-10-10 13:14:15.122 | ...

df2

index_2                 | something_else_2 | ...
2019-10-10 13:14:10.432 | ...
2019-10-10 13:14:11.555 | ...
2019-10-10 13:14:12.622 | ...
2019-10-10 13:14:13.721 | ...
2019-10-10 13:14:14.911 | ...
2019-10-10 13:14:16.002 | ...

我想将它们合并到一个索引中,如果最近时间之间的差异超过1秒,我们只需丢弃这些观察结果,然后继续。因此,生成的合并数据帧如下所示:

merged_df

index_1                 | index_2                 | something_else_1 | something_else_2 | ...
2019-10-10 13:14:10.543 | 2019-10-10 13:14:10.432 | ...
2019-10-10 13:14:11.700 | 2019-10-10 13:14:11.555 | ...
2019-10-10 13:14:14.121 | 2019-10-10 13:14:14.911 | ...
2019-10-10 13:14:15.122 | 2019-10-10 13:14:16.002 | ...

也就是说,我们从df2中删除了一些观察结果,因为在df1中没有相应的观察结果(在1秒内)

我目前的“解决方案”非常原始。我合并两个(外部连接),然后简单地向前填充。这是非常糟糕的,因为它不能实现我上面所描述的输出

如果有任何建议,我将不胜感激


Tags: 数据dfindex时间序列差异merged解决方案