Вы сделали res = pd.merge(left, right, on="id", how="left", indicator=True). Как выбрать строки, для которых совпадения в right не нашлось?

Ares[res['_merge'] == 'both'] для оставления строк со значением both в индикаторе
Bres[res['_merge'] == 'right_only'] для строк, существующих только в правой таблице
Cres[res['_merge'] == 'left_only'] для строк без пары в правой таблице по ключу
Dres[res['_merge'].isna()] для фильтрации по пропускам в столбце _merge индикатора
Правильный ответ. С indicator=True столбец _merge показывает источник строки: left_only, right_only или both.

Разбор

Параметр indicator=True добавляет колонку _merge со значениями left_only, right_only или both — она помогает диагностировать результат соединения. При how="left" строки могут быть только left_only (нет пары справа) или both (пара нашлась); right_only тут не встречается. Фильтр _merge == 'left_only' как раз и оставит строки без совпадения справа. Колонка _merge всегда заполнена и не содержит NaN.

Проверь себя · 1/3разбор после ответа
В чём смысл параметров в pd.merge(df_left, df_right, left_on="sku", right_on="product_sku", how="inner")?
Тренировать Python в Telegram

Ещё вопросы по теме «Pandas и DataFrame»