копия фрагмента из предупреждения DataFrame, метод loc не работает - PullRequest
0 голосов
/ 09 сентября 2018

В этой теме много сообщений, но, к сожалению, предоставленное решение (с использованием loc) не работает для меня. В моем наборе данных есть функция 'GarageYrBlt', которая является годом, когда был построен гараж; и еще одна особенность YearBuilt - год, в котором был построен дом. GarageYrBlt имеет несколько нулевых значений.

, поскольку GarageYrBlt и YearBuilt сильно коррелированы, я пытаюсь заменить нулевые значения GarageYrBlt соответствующими значениями YearBuilt.

df.GarageYrBlt[df.GarageYrBlt.isnull()] = df.YearBuilt[df.GarageYrBlt.isnull()]

Это выдало предупреждение «Значение пытается быть установлено для копии среза из DataFrame» Поэтому я попробовал метод .loc, как показано ниже, но без изменений. Я все еще получаю ту же ошибку. Есть предложения?

df.loc[:,"GarageYrBlt"][df.GarageYrBlt.isnull()] = df.loc[:,"YearBuilt"][df.GarageYrBlt.isnull()].copy()

1 Ответ

0 голосов
/ 09 сентября 2018

Вам нужно сделать это за одну операцию среза. Так что вместо этого:

df.loc[:,"GarageYrBlt"][df.GarageYrBlt.isnull()] = df.loc[:,"YearBuilt"][df.GarageYrBlt.isnull()].copy()

Сделайте это:

df.loc[df.GarageYrBlt.isnull(), "GarageYrBlt"] = df.loc[df.GarageYrBlt.isnull(), "YearBuilt"]

Или проще:

df.GarageYrBlt.fillna(df.YearBuilt, inplace=True)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...