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

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

Semi JOIN — это операция, которая возвращает строки из первой таблицы, для которых есть хотя бы одно совпадение во второй таблице, но без дублирования строк при множественных совпадениях. В SQL это можно реализовать через EXISTS или IN.

В Python, при работе с pandas, аналогом Semi JOIN будет использование merge с последующим удалением дубликатов или isin():

python
import pandas as pd

# Пример данных
df1 = pd.DataFrame({'id': [1, 2, 3], 'name': ['A', 'B', 'C']})
df2 = pd.DataFrame({'id': [1, 1, 3], 'value': [10, 20, 30]})

# Semi JOIN через merge
semi_join = df1[df1['id'].isin(df2['id'])]
print(semi_join)

# Или через merge с indicator
merged = df1.merge(df2['id'].drop_duplicates(), on='id', how='inner')
print(merged)

Оба способа вернут только строки из df1, чьи id есть в df2, без дублирования.

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

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

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

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