try This -
pd.merge(df1, top_wud, on=['BOMCPNO', 'PRTNO'])
Что это будет делать, так это возвращать только значения, в которых BOMCPNO и PRTNO существуют в обоих фреймах данных, поскольку тип слияния по умолчанию является внутренним слиянием.
Итак то, что вы могли бы сделать, это сравнить этот объединенный размер df с вашим первым и посмотреть, одинаковы ли они, и если да, то вы можете выполнить объединение в обоих столбцах или просто удалить / переименовать столбцы суффикса _x / _y B.
Я бы потратил время на то, чтобы определить, действительно ли эти значения одинаковы и существуют в обоих фреймах данных, и в этом случае вы можете выполнить внешнее слияние sh:
pd.merge(df1, df2, on=['A', 'B'], how='outer')
Тогда вы можете сделать следующее: затем удалите дублирующиеся строки (и, возможно, любые строки NaN), и это даст вам чистый объединенный фрейм данных.
merged_df.drop_duplicates(cols=['BOMCPNO', 'PRTNO'],inplace=True)
также попробуйте другие типы объединения, так как я не знаю, что именно вы хотите, я думаю, что осталось inner.
проверьте это, если это решит вашу проблему.