Встречается на собеседованиях • сегодня

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

Да, сталкивался. Anti JOIN — это операция, которая возвращает записи из первой таблицы, для которых нет совпадений во второй таблице. В SQL это реализуется через LEFT JOIN с проверкой IS NULL или через NOT EXISTS.

В Python с pandas аналогичный результат достигается через merge с индикатором или isin с отрицанием:

python
# Пример с 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.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы