DF_SettingWithCopyWarning

解决python_pandas_dataframe中的SettingWithCopyWarning问题。

SettingWithCopyWarning 字面意义是错误的对copy进行了设置。

常见于链式赋值,例如:

dfcd[ 'cdnum'] [dfcd['cdnum'] < 2] = 0
dfcd[ 'cdnum'][dfcd['cdnum'] >= 2] = 1
错误提示

即,使用 [ ] 进行索引,并进行赋值后,系统无法判别该次赋值是对内容的copy进行赋值,还是对内容的自身进行赋值。

解决办法:

使用 .loc 或者 .iloc 进行行列强制定位,鲜明的告诉系统,这玩意儿就是一个索引,不是copy,不是copy,不是copy。

方案如下:

# 布尔值可以作为行索引依据
dfcd.loc[dfcd['cdnum'] < 2, 'cdnum'] = 0
dfcd.loc[dfcd['cdnum'] >= 2, 'cdnum'] = 1

SettingWithCopyWarning报错消失。

附:

在其他文章中,有通过直接屏蔽错误提示的方法,治标不治本不多赘述。

你可能感兴趣的:(DF_SettingWithCopyWarning)