Используйте DataFrame.duplicated
только для A
DataFrame
:
A = pd.DataFrame({
'A':list('abcdef'),
'A_Key1':[3,3,6,5,5,4],
'A_Key2':list('aaabbb')
})
B = pd.DataFrame({
'B':list('qwerty'),
'B_Key1':[5,3,6,1,3,5],
'B_Key2':list('aaaaab')
})
merged = A.merge(B, left_on=["A_Key1", "A_Key2"], right_on=["B_Key1", "B_Key2"], how = 'left')
print (merged)
A A_Key1 A_Key2 B B_Key1 B_Key2
0 a 3 a w 3.0 a
1 a 3 a t 3.0 a
2 b 3 a w 3.0 a
3 b 3 a t 3.0 a
4 c 6 a e 6.0 a
5 d 5 b y 5.0 b
6 e 5 b y 5.0 b
7 f 4 b NaN NaN NaN
dup = merged[merged.duplicated(["B_Key1", "B_Key2"])]
print (dup)
A A_Key1 A_Key2 B B_Key1 B_Key2
1 a 3 a t 3.0 a
2 b 3 a w 3.0 a
3 b 3 a t 3.0 a
6 e 5 b y 5.0 b
dup1 = merged.loc[merged.duplicated(["A_Key1", "A_Key2"]),
['A_Key1','A_Key2','B_Key1','B_Key2']]
print (dup1)
A_Key1 A_Key2 B_Key1 B_Key2
1 3 a 3.0 a
2 3 a 3.0 a
3 3 a 3.0 a
6 5 b 5.0 b