Код `df[df["amount"] > 100]["status"] = "expensive"` выдаёт SettingWithCopyWarning. Почему и как правильно?
Pythonmediummiddle
Варианты ответа
Chained indexing: df[mask] может вернуть copy или view — pandas не гарантирует, изменение может не попасть в df. Правильно: df.loc[df["amount"] > 100, "status"] = "expensive"
Нельзя одновременно фильтровать и присваивать — надо сначала сохранить отфильтрованный df во временную переменную и потом обновлять её
Проблема в том что "expensive" не входит в зарегистрированные категории статусов колонки status и pandas требует add_categories
Warning можно игнорировать — всё работает корректно, просто pandas сообщает о возможной неоптимальности операции присваивания
Разбор ответа
Подробный разбор с объяснением «почему правильный ответ верный» и почему остальные неверны — после регистрации.
2475 вопросов с разбором, quiz-режим с проверкой, AI-собес и подготовка к интервью аналитика.