Понимание `SettingWithCopyWarning` - PullRequest
0 голосов
/ 17 марта 2019

У меня есть код, как показано ниже. Я получаю кучу SettingWithCopyWarning сообщений. Но если я проверю 3 кадра данных после последнего оператора, только df_numeric['class'] имеет значение 99. В двух других кадрах данных значение class остается неизменным. Зачем? я думал, что из-за SettingWithCopyWarning, после последнего утверждения class значения во всех данных будут меняться

объясните пожалуйста, что происходит

import pandas as pd
import numpy as np
data = [['Alex',10,5,0],['Bob',12,4,1],['Clarke',13,6,0],['brke',15,1,0]]
df = pd.DataFrame(data,columns=['Name','Age','weight','class'],dtype=float) 

df_numeric=df.select_dtypes(include='number')#, exclude=None)[source]
df_non_numeric=df.select_dtypes(exclude='number')

df_non_numeric['class']=df_numeric['class'].copy()

df_numeric['class']=99

1 Ответ

1 голос
/ 20 марта 2019

Быстрый ответ здесь.Это самое распространенное предупреждение в pandas.

Так же, как Понимание SettingwithCopyWarning в пандах сказал, pandas сообщает вам, что ваша операция может работать не так, как ожидалось, и что вы должны проверить результат, чтобы убедиться, что вы не сделалиошибка.


Причина SettingwithCopyWarning

SettingwithCopyWarning обычно возникает, когда вы пытаетесь присвоить новые значения подмножеству df2 исходного фрейма данныхdf1

Но оригинал фрейм данных df1 вообще не изменился!

enter image description here [Изображение заимствованоот Понимание SettingwithCopyWarning в пандах ]

Как прибить это?

  1. Я рекомендую вам пройти этот пост Понимание SettingwithCopyWarning в пандах с подробным объяснением и примером кода
  2. Как и сказал @ anky_91, вы можете просматривать сообщения в своем списке комментариев

Надеюсь, вы пройдете через весь беспорядок!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...