• 注册
当前位置:1313e > 默认分类 >正文

Pandas中的SettingWithCopyWarning

1、首先SettingWithCopyWarning不是一种错误Error而是一种警告Warning。

2、该警告一般是在引用pandas中的数据框时发出的警告,我们知道引用数据框数据的方式挺多的,但是一不小心就会返回这个警告。

3、SettingWithCopyWarning的含义是:(1)你的操作可能没有按预期运行,你应该检查结果以确保没有出错。(2)如果希望更改原始数据框,发出这个警告就要检查使用的索引有没有把原始的数据框进行修改。

1 import pandas as pd
2 
3 df1 = pd.DataFrame([[1, 2, 3], [4, 5, 6]], columns=["A", "B", "C"])
4 df1[["A", "B"]]["A"] = 1000   #想将df1中的A列值改为1000
5 #此时会报出SettingWithCopyWarning警告,而且你会发现df1中的值并未发生改变
6 print(df1)
7 #通过loc索引发现实现了修改df1中的值,也没有警告,这主要因为之前使用了链式索引
8 df1.loc[:, "A"] = 1000
9 print(df1)
 1 df1 = pd.DataFrame([[1, 2, 3], [4, 5, 6]], columns=["A", "B", "C"])2 df2 = df1.loc[:, "A"]    #类型为pandas中的Series序列3 df2[0] = 1000   4 print(df2)5 print(df1)    #df1结果也被修改6 7 df2 = df1.loc[:, ["A", "B"]]    #类型为pandas中的DataFrame序列8 df2["A"] = 0   9 print(df2)
10 print(df1)    #df1结果并未改变
参考:https://www.jianshu.com/p/72274ccb647a

转载于:https://www.cnblogs.com/beyondChan/p/10728179.html

本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 162202241@qq.com 举报,一经查实,本站将立刻删除。

最新评论

欢迎您发表评论:

请登录之后再进行评论

登录