首页 > 编程语言 >Python数据分析-基于pandas的数据清洗

Python数据分析-基于pandas的数据清洗

时间:2022-10-11 13:11:09浏览次数:66  
标签:数据分析 None isnull Python any df notnull pandas axis

一、处理丢失数据

  (1)丢失数据的类型

     1)None

     2) np.nan(NaN)

  两种丢失数据的区别:

type(None)
NoneType

type(np.nan)
float

 

  为什么在数据分析中需要用到的是浮点类型的空而不是对象类型?

  • 数据分析中会常常使用某些形式的运算来处理原始数据,如果原数数据中的空值为NAN的形式,则不会干扰或者中断运算。
  • NAN可以参与运算的
  • None是不可以参与运算
    np.nan + 1
    nan
    
    
    
    None + 1
    ---------------------------------------------------------------------------
    TypeError                                 Traceback (most recent call last)
    <ipython-input-5-3fd8740bf8ab> in <module>
    ----> 1 None + 1
    
    TypeError: unsupported operand type(s) for +: 'NoneType' and 'int'

    在pandas中如果遇到了None形式的空值则pandas会将其强转成NAN的形式。

    df = DataFrame(data=np.random.randint(0,100,size=(7,5)))
    df.iloc[2,3] = None
    df.iloc[4,2] = np.nan
    df.iloc[5,4] = None
    df

     

    
    

     

     

     

二、pandas处理空值操作

    • isnull
    • notnull
    • any
    • all
    • dropna
    • fillna

 

  • 方式1:对空值进行过滤(删除空所在的行数据)
    • 技术:isnull,notnull,any,all
      df.isnull()
      #哪些行中有空值
      #any(axis=1)检测哪些行中存有空值
      df.isnull().any(axis=1) #any会作用isnull返回结果的每一行
      #true对应的行就是存有缺失数据的行
      df.notnull()
      df.notnull().all(axis=1)

       

      #将布尔值作为源数据的行索引
      df.loc[df.notnull().all(axis=1)]     #取出不含空的行

       

       

       #获取空对应的行数据
      df.loc[df.isnull().any(axis=1)]

       

       

       #获取空对应行数据的行索引
      indexs = df.loc[df.isnull().any(axis=1)].index
      indexs

       

       #获取非空对应行数据的行索引

      indexs1 = df.loc[df.notnull().all(axis=1)].index
      indexs1

      df.drop(lables=indexs,axis=0)    #drop 删除指定indexs对应的索引的行,axis 0表示为行

       

       

       

       方式2:

      • dropna:可以直接将缺失的行或者列进行删除
        df.dropna(axis=0)                      #可以直接将缺失的行或者列进行删除 


 

标签:数据分析,None,isnull,Python,any,df,notnull,pandas,axis
From: https://www.cnblogs.com/Justin1990/p/16778864.html

相关文章

  • nginx python webpy 配置安装
    安装webpy$wgethttp://webpy.org/static/web.py-0.34.tar.gz$tarxvzfweb.py-0.34.tar.gz$cdweb.py-0.34$sudopythonsetup.pyinsta......
  • Python函数-5
    Python函数-4的补充和修订:修正一下上个博客的代码块中的del应改为def,深感歉意。补充一下返回值函数的样式:def函数名:return代码(值)一.函数的作用域有两种,一个......
  • python 联邦学习库 syft安装
    python联邦学习库syft安装新建一个新的环境(注意先不用安装pytorch,容易有pysyft和pytorch版本不对应,或者有些pytorch版本不支持pysyft的情况,然后报错):      ......
  • Python文件和目录操作
    创建目录1、os.makedirs可以递归的创建目录结构例如:importosos.makedirs('路径(可以是相对路径也可以是绝对路径)',exist_ok=True)exist_ok=True指定了,如果某个要......
  • pandas批量读取xlsx中的sheet
    importpandasaspd#sheet_name=None的意思是,一次性将所有的工作表都读取出来dfs2=pd.read_excel("test.xls",sheet_name=None)pd.concat(dfs2).to_excel("text.xlsx......
  • Python工具箱系列(九)
    在计算机世界里,信息安全始终占据着重要的地位,我们随处就可以看到信息安全的应用:◆访问网站时,使用https而不是http会使访问者的安全性大大提升◆下载文件时,正规的网站都......
  • python + selenium 新手随笔 元素定位
    1.fromseleniumimportwebdriverfromselenium.webdriver.common.keysimportKeys//Key表示键盘上的键,By定位文本中的元素fromselenium.webdriver.common.by......
  • 力扣594(java&python)-最长和谐子序列(简单)
    题目:和谐数组是指一个数组里元素的最大值和最小值之间的差别正好是1。现在,给你一个整数数组nums,请你在所有可能的子序列中找到最长的和谐子序列的长度。数组的子序......
  • python study
    pythonpycharmPythonpip安装与使用pythonpippipinstallpyqt5pipinstallpyqt5_toolsqtdesigner就在python目录下:.\Python36\Lib\site-packages\pyqt5-tools。pyqt5_to......
  • Win10 环境下 vscode 没法在终端使用 conda activate 命令来更换 Python 环境的解决方
    在vscode上激活conda镜像如报下面错误:CommandNotFoundError:Yourshellhasnotbeenproperlyconfiguredtouse'condaactivate'.Ifusing'condaactivate'fr......