Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/366.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 合并/连接2个数据帧_Python_Pandas - Fatal编程技术网

Python 合并/连接2个数据帧

Python 合并/连接2个数据帧,python,pandas,Python,Pandas,我有两个数据帧想要加入,但是,它们不包含完全相同的行 我在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

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

我在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    

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

pd.merge(dataframe1, dataframe2, left_index=True, right_index=True)
dataframe1.join(dataframe2)
pd.concat([dataframe1, dataframe2], axis=1)
或者,默认情况下为左连接:

pd.merge(dataframe1, dataframe2, left_index=True, right_index=True)
dataframe1.join(dataframe2)
pd.concat([dataframe1, dataframe2], axis=1)
或者,默认情况下为外部联接:

pd.merge(dataframe1, dataframe2, left_index=True, right_index=True)
dataframe1.join(dataframe2)
pd.concat([dataframe1, dataframe2], axis=1)

使用
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

太神了这就是我要找的!输出并不是我想要的。它也在按要求合并您的df。