且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

复杂数据框合并Python pandas

更新时间: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