Короткий ответ SettingWithCopyWarning сигнализирует, что изменение значения происходит на объекте, про который pandas не может гарантировать, является ли он копией или видом исходных данных; правильный способ — выполнять фильтрацию и присвоение в одной операции через .loc. Как это работает подробнее при цепочечной индексации вида df[mask]['col'] = value сначала создаётся промежуточный объект (результат df[mask]), а затем в него пытаются записать значение; pandas не гарантирует, что этот промежуточный объект — view на оригинал или отдельная копия, из-за чего присвоение может как сработать, так и не сработать, и выдаётся предупреждение. Пример кода Что использовать на практике Практика. безопасный способ — df.loc[mask, 'col'] = value, выполняющий фильтрацию и присвоение атомарно за один вызов; если результат фильтрации предполагается использовать как самостоятельный объект для дальнейших изменений, его стоит явно скопировать через .copy(). Проверка. после операции строки с a>1 (вторая и третья) должны получить