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

Python Junior Без компании
Сталкивался ли с Semi JOIN
Ответы
Semi JOIN — это операция, которая возвращает строки из первой таблицы, для которых есть хотя бы одно совпадение во второй таблице, но без дублирования строк при множественных совпадениях. В SQL это можно реализовать через `EXISTS` или `IN`. В Python, при работе с pandas, аналогом Semi JOIN будет использование `merge` с последующим удалением дубликатов или `isin()`: ``` 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`, без дублирования.