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

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

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

В Pandas semi join можно эмулировать через merge с последующим фильтром или через isin:

python
import pandas as pd

df1 = pd.DataFrame({'id': [1, 2, 3], 'value': ['A', 'B', 'C']})
df2 = pd.DataFrame({'id': [1, 3], 'other_value': ['X', 'Z']})

# Способ 1: через merge и фильтр
semi_join = df1[df1['id'].isin(df2['id'])]

# Способ 2: через merge и indicator
merged = df1.merge(df2[['id']], on='id', how='left', indicator=True)
semi_join = merged[merged['_merge'] == 'both'].drop('_merge', axis=1)

Также в SQLAlchemy можно использовать exists() для аналогичной логики.

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

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

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

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