Ожидается, потому что дубликаты на все 4 столбца.
Поэтому нужно удалить дубликаты строк на drop_duplicates
:
dfa = dfa.drop_duplicates(subset=['a_retry','a_cca', 'a_rssif', 'a_lqif'])
dfb = dfb.drop_duplicates(subset=['b_retry','b_cca', 'b_rssif', 'b_lqif'])
Но если нужно сопоставить дубликатыстрок, возможно ли с новым столбцом cumcount
, который используется для merge
:
dfa['new'] = dfa.groupby(['a_retry','a_cca', 'a_rssif', 'a_lqif']).cumcount()
dfb['new'] = dfb.groupby(['b_retry','b_cca', 'b_rssif', 'b_lqif']).cumcount()
df = (pd.merge(dfa,
dfb,
left_on = ['a_retry','a_cca', 'a_rssif', 'a_lqif', 'new'],
right_on = ['b_retry','b_cca', 'b_rssif','b_lqif', 'new']).drop('new', axis=1))