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

Работал ли с anti join

Да, работал. Anti join — это операция, которая возвращает строкй из левой таблицы, отсутствующие в правой. В SQL это обычно реализуется через LEFT JOIN + WHERE IS NULL или NOT EXISTS. В pandas аналогичный результат достигается через merge с индикатором или isin с отрицанием.

Пример в pandas:

python
left = pd.DataFrame({'key': ['A', 'B', 'C']})
right = pd.DataFrame({'key': ['A', 'B']})

# Способ 1: merge с indicator
anti_join = left.merge(right, on='key', how='left', indicator=True)
anti_join = anti_join[anti_join['_merge'] == 'left_only'].drop('_merge', axis=1)

# Способ 2: isin с отрицанием
anti_join = left[~left['key'].isin(right['key'])]

Нюансы:

  • Важно проверять на NaN, так как isin и merge могут вести себя с ними неочевидно
  • Для больших таблиц merge может быть менее эффективен, чем isin
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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