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

Что такое semi join

Semi join — это операция соединения таблиц, которая возвращает только строки из первой таблицы, имеющие соответствие во второй таблице, без дублирования данных из второй таблицы. В отличие от обычного join, semi join не включает столбцы из второй таблицы в результат.

Пример в SQL:

sql
SELECT a.*
FROM table_a a
WHERE EXISTS (SELECT 1 FROM table_b b WHERE a.id = b.id);

В Pandas аналог semi join можно реализовать через isin() или merge() с последующим удалением дубликатов:

python
import pandas as pd

df_a = pd.DataFrame({'id': [1, 2, 3]})
df_b = pd.DataFrame({'id': [2, 3, 4]})

# Semi join вариант 1
result = df_a[df_a['id'].isin(df_b['id'])]

# Semi join вариант 2
result = df_a.merge(df_b['id'], on='id').drop_duplicates()

Ключевые особенности:

  • Возвращает только строки из левой таблицы
  • Не дублирует данные при множественных совпадениях
  • Часто используется для фильтрации данных
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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