DF_SettingWithCopyWarning

阿里云2000元红包!本站用户参与享受九折优惠!

解决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报错消失。

附:

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

https://www.jianshu.com/p/154580be1726

「点点赞赏,手留余香」

    还没有人赞赏,快来当第一个赞赏的人吧!
TensorFlow
0 条回复 A 作者 M 管理员
    所有的伟大,都源于一个勇敢的开始!
欢迎您,新朋友,感谢参与互动!欢迎您 {{author}},您在本站有{{commentsCount}}条评论