首页 > 解决方案 > 合并 2 个具有相似时间索引的数据帧

问题描述

我有 2 个数据框,ts1并且ts2. 数据结构如下所示:

    Date    Close
0   2004-08-05  0.0
1   2004-08-06  -155.0
2   2004-08-09  -140.0
3   2004-08-10  -2.0
4   2004-08-11  -24.0

两者都有一个DateClose列。某些日期可能在 ts1 但不在 ts2 中(反之亦然)。

我想创建一个数据框,ts_merged看起来像这样:

    Date        Close_TS1   Close_TS2
0   2004-08-05  0.0         1
1   2004-08-06  -155.0      133
2   2004-08-09  -140.0      4
3   2004-08-10  -2.0        2
4   2004-08-11  -24.0       2

我想要一个数据框,其中只有ts1和中都存在的日期ts2

对于我尝试过的比较ts1.Date[ts1.Date == ts2.Date],它不起作用。对于合并,我已经尝试过.merge(),但它只是将所有内容合并到一个独特的 Close 列中。

我怎样才能做到这一点?

标签: pythonpandas

解决方案


将 how='inner' 传递给合并函数。这将告诉合并函数进行内部联接,该内部联接仅保留在两个数据框中找到的键。

ts_merged=ts1.merge(
    ts2, on='Date', how='inner', suffixes=('_TS1','_TS2')
)

推荐阅读