Итак, у меня есть два таких фрейма данных:
df1 =
ID Amount Reference
2 15.34 ABC
2 15.34 DEF
df2 =
ID_r Amount_r Reference_r
2 15.34 123
2 15.34 123
2 15.34 345
3 15.34 456
Я хочу присоединиться к DF1 с любыми двумя значениями на df2 до тех пор, пока идентификатор и сумма совпадают
Итак, я хочу, чтобы мой вывод был примерно таким же, как
ID Amount Reference ID_r Amount_r Reference_r
2 15.34 ABC 2 15.34 123
2 15.34 DEF 2 15.34 345
Однако, выполняя обычное левое соединение, такое как pd.merge (df1, df2, how = left) обеспечивает вывод 6 строк со всеми возможными комбинациями. Мне просто нужно присоединиться к df1 для двух уникальных строк данных в df2.
Чтобы расширить пример, скажем, у меня есть фрейм данных df3
df3 =
ID_r Amount_r Reference_r
2 15.34 789
Я хочу объединить df1 с df3, и поскольку в df3 доступна только одна строка данных, я хочу, чтобы результат слияния был
ID Amount Reference ID_r Amount_r Reference_r
2 15.34 ABC 2 15.34 789
2 15.34 DEF N/A N/A N/A
Поскольку я объединяю только уникальные правые строки, там Нет второй строки данных на df3 для слияния с df1. Однако выполнение обычного левого соединения по идентификатору и сумме даст 2 строки данных, причем строка df3 используется дважды в df1.
Вывод левого соединения df1 и df3 по идентификатору и количеству (не требуется)
ID Amount Reference ID_r Amount_r Reference_r
2 15.34 ABC 2 15.34 789
2 15.34 DEF 2 15.34 789
Это в основном для того, чтобы я мог подтвердить наличие уникальной строки данных в df2 / df3 для каждой строки данных в df1 с тем же идентификатором и количеством, однако я не могу использовать ту же строку данных в df2 дважды.