Pandas - 合并不同大小的DataFrame

时间:2017-02-17 01:48:16

标签: python pandas

我遇到了将两个帧与不同行合并的问题。第一个数据帧有5K行,第二个数据帧有20K行。有一列" id"在两个帧中,以及所有5K" id"值将出现在具有20K行的帧中。

第一帧" df"

     A    B    id    A_1    B_1
0    1    1    1     0.5    0.5
1    3    2    2     0.2    0.4
2    3    4    3     0.8    0.9

第二帧" df_2"

     A    B    id    
0    1    1    1    
1    3    2    2    
2    3    4    3    
3    1    2    4    
4    3    1    5     

有希望的输出框架" df_out"

     A    B    id    A_1    B_1
0    1    1    1     0.5    0.5
1    3    2    2     0.2    0.4
2    3    4    3     0.8    0.9
3    1    2    4     na     na
4    3    1    5     na     na

我尝试合并' id'我只留下了5k行。我正在寻找的操作是保留大型数据帧的所有行,并为大型帧中不存在的数据粘贴Nan值。

由于

1 个答案:

答案 0 :(得分:3)

只需将how=outer指定为df.merge,即可使用两个DataFrame的并集。

>>> df.merge(df_2, how='outer')
     A  A_1    B  B_1   id
0  1.0  0.5  1.0  0.5  1.0
1  3.0  0.2  2.0  0.4  2.0
2  3.0  0.8  4.0  0.9  3.0
3  1.0  NaN  2.0  NaN  4.0
4  3.0  NaN  1.0  NaN  5.0