首页 > 解决方案 > Pandas 合并/加入 2 个数据框

问题描述

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

我在dataframe1中有这个

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

标签: pythonpandas

解决方案


pd.merge与 一起使用how='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

推荐阅读