Я написал этот код для замены значений nan на медиану каждого столбца в соответствии со значением переменной для объяснения:
data_target1 = data[data['target'] == 1]
data_target0 = data[data['target'] == 0]
for col_name in data.columns.values:
data_target1.loc[:,col_name] = data_target1[col_name].fillna(data_target1[col_name].median())
data_target0.loc[:,col_name] = data_target0[col_name].fillna(data_target0[col_name].median())
data = pd.concat([data_vae1,data_vae0], ignore_index=True)
data = data.sort_values(by='IDCLI_CALCULE')
data = data.reset_index(drop=True)
return data
Я получаю во время казни:
SettingWithCopyWarning:A value is trying to be set on a copy of a slice from a DataFrame.
Я понимаю предупреждение, я прочитал документацию и все же не могу написать код без появления предупреждения ... Может ли кто-нибудь объяснить мою ошибку и дать мне решение для решения этой проблемы?
Я прочитал эти 2 страницы и понял, что мне нужно использовать .loc для решения моей проблемы, но я остаюсь заблокированным ...
1-: Панды: SettingWithCopyWarning
2-: Настройка PandasWithCopyWarning
Возможно, это деталь, но я не могу найти ключ к решению этой маленькой проблемы.
Заранее спасибо
EDIT
После проверки мне удалось решить мою проблему, используя метод «копирования», как это предлагается в комментарии.