连接两个具有相同索引的 df

Concatenate two df with same kind of index

我有两个df。

df1:

         date   a
0   2021-12-15  0.16
1   2021-12-16  0.16
2   2021-12-17  0.16

df2:

         date   b
0   2021-12-16  0.17
1   2021-12-17  0.17
2   2021-12-18  0.17

我想要这个 df 作为输出

         date   a    b
0   2021-12-15  0.16 NaN
0   2021-12-16  0.16 0.17
1   2021-12-17  0.16 0.17
2   2021-12-18  NaN  0.17

我正在尝试同时使用 concat pd.concat([df1,df2],axis=1 和 merge df1.merge(df2,on=['date'],但找不到解决方案

看看 pandas merge 函数。

您想做的事情:

pd.merge(df1, df2, on='date', how='outer')

This link 很好地解释了可能的不同类型的合并。

您真正想要做的不是连接,而是日期的外部合并。因此,您可以使用以下内容:

df = pd.merge(df1,df2,how='outer',on='date')
print(df)

有关详细信息,请参阅此 doc。您会发现大量示例和用例。