小编cir*_*999的帖子

使用 pandas.merge_asof 进行全外连接

您好,我需要将一些时间序列数据与最近的时间戳对齐,所以我认为pandas.merge_asof可能是一个很好的候选者。但是,它没有how='outer'像标准merge方法那样设置的选项。

一个例子可以是:

df1:

                                   Value1
Time
2020-07-17 14:25:03.535906075      108
2020-07-17 14:25:05.457247019      110
2020-07-17 14:25:07.467777014      126
Run Code Online (Sandbox Code Playgroud)

df2:

                                  Value2
Time
2020-07-17 14:25:03.535018921     222
2020-07-17 14:25:04.545104980     150
2020-07-17 14:25:07.476825953      60
Run Code Online (Sandbox Code Playgroud)

例如,执行以下操作merge_asof

pd.merge_asof(df1, df2, left_index=True, right_index=True, direction='nearest', tolerance=pd.Timedelta('0.3s'))
Run Code Online (Sandbox Code Playgroud)

结果将是:

                               Value1  Value2
Time
2020-07-17 14:25:03.535906075     108   222.0
2020-07-17 14:25:05.457247019     110     NaN
2020-07-17 14:25:07.467777014     126    60.0
Run Code Online (Sandbox Code Playgroud)

但我想要的是:

                               Value1  Value2
Time
2020-07-17 14:25:03.535906075     108   222.0
2020-07-17 14:25:04.545104980     NaN   150.0   <---- this is the difference
2020-07-17 14:25:05.457247019     110     NaN
2020-07-17 14:25:07.467777014 …
Run Code Online (Sandbox Code Playgroud)

python merge outer-join dataframe pandas

6
推荐指数
1
解决办法
3945
查看次数

标签 统计

dataframe ×1

merge ×1

outer-join ×1

pandas ×1

python ×1