zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    5. support vector machine
    机器学习实战(二)决策树
    机器学习实战(一)kNN
    深度学习笔记(无)VGG14
    深度学习笔记(一)线性分类器(基础知识)
    Eclipse代码风格
    windows安装java环境
    linux matlab2013b 安装教程
    小白Linux入门 五
    机器学习 0
  • 原文地址:https://www.cnblogs.com/beyondChan/p/10728179.html
Copyright © 2011-2022 走看看