Зачем добавляют validate="one_to_one" в pd.merge(a, b, on="id", how="left", validate="one_to_one")?
AЧтобы автоматически привести типы столбцов ключа
id к одинаковымBЧтобы проверить, что ключ
id уникален в обеих таблицах, и получить ошибку, если это не такCЧтобы удалить строки с
NaN после объединенияDЧтобы гарантировать сортировку результата по
idПравильный ответ. Параметр
validate помогает ловить ошибки кардинальности соединения (one-to-one, one-to-many).Разбор
validate="one_to_one" сообщает pandas, что вы ожидаете уникальный ключ id и в a, и в b. Если на практике обнаружатся дубликаты ключа хотя бы с одной стороны, .merge() выбросит исключение. Это полезно, когда вы строите аналитические витрины и хотите заранее защититься от неожиданного размножения строк.
Проверь себя · 1/3разбор после ответа
В
df есть столбец age. Какие значения age попадут в результат df[(df["age"] >= 18) & (df["age"] <= 25)]?Ещё вопросы по теме «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» →