2017-08-27 54 views
1

住我有两个DataFrames:合并DataFrames只有用不匹配的条目

dfA = pd.DataFrame([['A', 'B', 'C', 'D'], ['A1', 'B1', 'C1', 'D1'], ['A2', 'B2', 'C2', 'D2'], ['A', 'B3', 'C3', 'D3'], ['A', 'B', 'C4', 'D5']], columns = ['AA', 'BB', 'CC', 'DD']) 

     AA BB CC DD 
    0 A B C D 
    1 A1 B1 C1 D1 
    2 A2 B2 C2 D2 
    3 A B3 C3 D3 
    4 A B C4 D5 

dfB = pd.DataFrame([['A', 'B'], ['A', 'B3']], columns = ['AA', 'BB']) 

    AA BB 
0 A B 
1 A B3 

我想合并他们['AA', 'BB']列,我想只能用不匹配的条目留:

result = pd.DataFrame([['A1', 'B1', 'C1', 'D1'], ['A2', 'B2', 'C2', 'D2']], columns = ['AA', 'BB', 'CC', 'DD']) 

    AA BB CC DD 
0 A1 B1 C1 D1 
1 A2 B2 C2 D2 

感谢帮助。

回答

2

我认为你正在寻找这个,合并和删除索引合并的行。

dfA.drop(pd.merge(dfA,dfB,on=['AA','BB'],right_index=True).index) 

输出:

 
    AA BB CC DD 
1 A1 B1 C1 D1 
2 A2 B2 C2 D2 
+0

这是不是你想要的? – Dark