Вы сделали res = pd.merge(left, right, on="id", how="left", indicator=True). Как выбрать строки, для которых совпадения в right не нашлось?
A
res[res["_merge"] == "both"]B
res[res["_merge"] == "right_only"]C
res[res["_merge"] == "left_only"]D
res[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()?Ещё вопросы по теме «Pandas и DataFrame»
- Что вернёт выражение `df[df["price"] > 100]`?
- В `DataFrame` `df` есть столбцы `country`, `user_id`, `revenue`. Что вернёт выражение `df.loc[df["country"] == "RU", ["user_id", "revenue"]]`?
- В `df` есть столбец `age`. Какие значения `age` попадут в результат `df[(df["age"] >= 18) & (df["age"] <= 25)]`?
- Что выберет фильтр `df[~df["status"].isin(["cancelled", "returned"])]`?
- Что верно про два шага: `mask = df["col"] > 0` и затем `df[mask]`?
- Все вопросы по «Pandas и DataFrame» →