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

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

Разбор

Параметр indicator=True добавляет колонку _merge, которая помогает диагностировать результат соединения. Для how="left" интересны случаи, когда строка пришла только из левой таблицы и не нашла пару в правой: это помечается как left_only. Такой фильтр полезен, чтобы понять, почему появились NaN после .merge() и какие ключи не матчатся.

Проверь себя · 1/3разбор после ответа
У вас есть s = df.groupby("user_id").size(). Что нужно сделать, чтобы получить DataFrame с колонками user_id и cnt для дальнейшего .merge()?
Тренировать Python в Telegram

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