Сталкивался ли с Anti JOIN

Python Junior Без компании
Сталкивался ли с Anti JOIN
Ответы
Да, сталкивался. Anti JOIN — это операция, которая возвращает записи из первой таблицы, для которых нет совпадений во второй таблице. В SQL это реализуется через `LEFT JOIN` с проверкой `IS NULL` или через `NOT EXISTS`. В Python с pandas аналогичный результат достигается через `merge` с индикатором или `isin` с отрицанием: ``` # Пример с pandas import pandas as pd df1 = pd.DataFrame({'id': [1, 2, 3]}) df2 = pd.DataFrame({'id': [2, 3, 4]}) # Вариант 1: через merge с indicator anti_join = df1.merge(df2, on='id', how='left', indicator=True) anti_join = anti_join[anti_join['_merge'] == 'left_only'].drop('_merge', axis=1) # Вариант 2: через isin anti_join = df1[~df1['id'].isin(df2['id'])] ``` В SQLAlchemy можно использовать `NOT EXISTS` или `EXCEPT`.