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