Я использую pandas 17.1. Работа с настройкойWithCopyWarning широко обсуждается в SO, но я не верю, что выглядит так: the most popular thread адресует мой случай использования, который присваивает скаляр столбцу.SettingWithCopy Предупреждение при назначении скаляра столбцу
Мой код:
df.loc[:, "some_col_name"] = 0
Предположим, что столбец называется "some_col_name" уже существует; это не добавление столбца (если бы такой оператор даже мог).
Это генерирует настройкуWithCopyWarning, и для жизни меня я не могу понять, почему.
Он работает, когда я устанавливаю df.is_copy = False во-первых, но я бы предпочел избежать лишнего утверждения каждый раз, когда я это делаю, если это возможно.
Что я здесь делаю неправильно?
Спасибо!
Последующий ответ на ответ johnchase: df был создан оператором groupby (см. Ниже), поэтому я не уверен, где бы я добавил в .copy. Средство, о котором я упоминал, работает, но что я должен сделать это, для меня означает, что панды заставляют группы итераций не понимать, что они копии. (Они, правда, не так ли?)
for some_ix, df in bigger_df.groupby(cols_I_care_about):
df.loc[:, "some_col_name"] = 0
Спасибо, @johnchase. Df создается группой с итератором/генератором. (Я никогда не могу вспомнить, что это такое, или второй является подмножеством первого.) Я пересмотрю код, чтобы показать это. Я бы подумал, что панды будут делать каждый полученный df, зная, что это уже копия. – HaPsantran