更新时间:2023-11-22 14:51:16
set_index
+ concat
pd.concat([df1.set_index(['Index','Date']),df2.set_index(['Index','Date'])],1).reset_index()
Out[1145]:
Index Date Data1 Data2 Data3 Data4
0 A 2007-07-21 76.0 32.0 NaN NaN
1 A 2007-07-24 NaN NaN 14.0 NaN
2 A 2007-08-13 NaN 23.0 67.0 51.0
3 B 2007-06-15 53.0 NaN NaN NaN
4 B 2007-06-21 NaN NaN 32.0 36.0
5 B 2007-07-15 87.0 39.0 NaN 91.0
或者我们可以使用merge
df1.merge(df2,on=['Index','Date'],how='outer')
Out[1147]:
Index Date Data1 Data2 Data3 Data4
0 A 2007-07-21 76.0 32.0 NaN NaN
1 A 2007-08-13 NaN 23.0 67.0 51.0
2 B 2007-06-15 53.0 NaN NaN NaN
3 B 2007-07-15 87.0 39.0 NaN 91.0
4 A 2007-07-24 NaN NaN 14.0 NaN
5 B 2007-06-21 NaN NaN 32.0 36.0