Что произойдёт при pd.merge(left, right, on="id", how="left"), если в таблице right для одного id есть несколько строк?
A
pandas возьмёт только первое совпадение из right, остальные дубли молча проигнорирует и не отразит в результате соединенияB
pandas всегда выбросит исключение из-за неоднозначности соединения и потребует явно указать стратегию разрешения дубликатов в rightCСтрока из
left с этим id продублируется в результате столько раз, сколько совпадений найдено в правой таблице rightD
pandas автоматически усреднит числовые значения из right и добавит ровно одну строку в итоговый результат соединения таблицПравильный ответ. При
JOIN-ах возможна «размножающая» связь one-to-many: строки левой таблицы повторяются.Разбор
.merge() выполняет табличное соединение. Если ключ id в правой таблице не уникален, то для одной строки left найдётся несколько соответствий в right. Тогда результат будет содержать несколько строк (декартово размножение внутри ключа): одна и та же строка left повторится для каждого совпадения из right. Это важный аналитический риск, который может «раздуть» метрики.
Проверь себя · 1/3разбор после ответа
Что верно про два шага:
mask = df["col"] > 0 и затем df[mask]?Ещё вопросы по теме «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» →