Настройка
У меня есть 2 панды dfs (df1 и df2), которые содержат несколько перекрывающихся строк и несколько непересекающихся строк.
Оба dfs имеют столбцы order_id
и shop
.
Теперь, если строка в df1 соответствует какой-либо строке в df2 по комбинации order_id
и shop
, тогдаэтот ряд должен быть удален из df1.Если эта строка не совпадает ни с одной строкой в df2 на order_id
и shop
, ее следует сохранить.
Пример
df2
таков, что
order_id shop
0 12345 'NL'
1 45678 'FR'
2 12345 'DE'
3 34567 'NL'
Теперь, если df1
такой, что
order_id shop
0 12345 'NL'
1 45678 'FR'
тогда df1 должен вернуться пустым.
Но если df1
такое, что
order_id shop
0 12345 'NL'
1 99999 'FR'
2 12345 'UK'
, то df1
должно вернуться,
order_id shop
0 99999 'FR'
1 12345 'UK'
Код
Я создал чудовищную линию, которая тогда действительно не работала ...
Пока что у меня есть,
result_df = df1[(~df1['order_id'].astype(str).isin(df2['order_id'].astype(str)))]
Как мне решить эту проблему?