Есть бесчисленные вопросы о страшном SettingWithCopyWarning
Я хорошо разбираюсь в том, как это происходит. (Заметьте, я сказал хорошо, не очень)
Это происходит, когда фрейм данных df
"прикрепляется" к другому фрейму данных через атрибут, хранящийся в is_copy
.
Здесь пример
df = pd.DataFrame([[1]])
d1 = df[:]
d1.is_copy
<weakref at 0x1115a4188; to 'DataFrame' at 0x1119bb0f0>
Мы можем либо установить этот атрибут на None
, либо
d1 = d1.copy()
Я видел разработчиков как @Jeff, и я не могу вспомнить, кто еще, предупредить об этом. Ссылаясь на то, что SettingWithCopyWarning
имеет цель.
Вопрос
Итак, каков конкретный пример, демонстрирующий, почему игнорирование предупреждения путем назначения copy
обратно к оригиналу - плохая идея.
Я объясню "плохую идею" для разъяснения.
Плохая идея
Это плохая идея, чтобы вставить код в производство, что приведет к получению телефонного звонка в середине субботнего вечера, когда ваш код сломан и его нужно исправлять.
Теперь, как использовать df = df.copy()
, чтобы обойти SettingWithCopyWarning
, чтобы получить такой телефонный звонок. Я хочу, чтобы это было изложено, потому что это источник путаницы, и я пытаюсь найти ясность. Я хочу увидеть, как взорвался кромка!