熊猫合并/合并2个数据框

时间:2020-05-22 08:56:13

标签: python pandas

我有两个要加入的数据框,但是,它们不包含完全相同的行。

我已经在数据框1中找到了

test1   1   
test2   3   
test5   4   
test6   5   
test7   6

这在dataframe2中

test1   4   
test3   5   
test4   6   
test5   3   
test6   3

我想要实现的是以下

    col1    col2
test1   1   4
test2   3    
test3       5
test4       6
test5   4   3
test6   5   3
test7   6    

col1    col2
test1   1   4
test2   3   0
test3   0   5
test4   0   6
test5   4   3
test6   5   3
test7   6   0

2 个答案:

答案 0 :(得分:1)

pd.mergehow='outer'一起使用:

In [1539]: df1
Out[1539]: 
     col  val
0  test1    1
1  test2    3
2  test5    4
3  test6    5
4  test7    6

In [1540]: df2
Out[1540]: 
     col  val
0  test1    4
1  test3    5
2  test4    6
3  test5    3
4  test6    3

In [1541]: df1.merge(df2, on='col', how='outer')
Out[1541]: 
     col  val_x  val_y
0  test1    1.0    4.0
1  test2    3.0    NaN
2  test5    4.0    3.0
3  test6    5.0    3.0
4  test7    6.0    NaN
5  test3    NaN    5.0
6  test4    NaN    6.0

In [1542]: df1.merge(df2, on='col', how='outer').fillna(0)
Out[1542]: 
     col  val_x  val_y
0  test1    1.0    4.0
1  test2    3.0    0.0
2  test5    4.0    3.0
3  test6    5.0    3.0
4  test7    6.0    0.0
5  test3    0.0    5.0
6  test4    0.0    6.0

答案 1 :(得分:0)

使用merge,默认情况下为内部联接:

pd.merge(dataframe1, dataframe2, left_index=True, right_index=True)

join,默认情况下处于保留状态:

dataframe1.join(dataframe2)

concat,默认情况下为外部联接:

pd.concat([dataframe1, dataframe2], axis=1)
相关问题