数据分析基础笔记 - 数据清洗

一、读取文件,预处理数据集

数据清洗就是对数据的质量进行检查和处理。

脏数据

定义:由于记录或者储存的原因,导致部分数据缺失、重复、异常、错误,没有分析意义,就叫做“脏数据”。

脏数据存在三种情况:

  • 缺失值:由于记录或读取的原因,在应该有数据的地方,出现了空白
  • 重复值:在不该重复的地方,出现了异常的重复
  • 异常值:不合理的数据

处理思路

  • 拿到一份数据集,首先要导入pandas模块,读取文件
  • 对数据集进行格式转换,做简单处理
  • 识别并处理缺失值:
    • info()判断哪一列存在缺失值,用法如:df.info(),输出的结果有每一列的非空值结果,由此可以判断哪一列数据有缺失,注意info()可以直接输出结果,不需要添加print
    • isnull() 判断缺失值是在这一列的哪一行,而非直接输出缺失值所在的行,用法如:df["数据缺失列title"].isnull(), 如果是缺失值,则返回True,注意需要添加print输出结果
  • 识别并处理异常值:
    • 对数据中的异常值进行检验和处理
  • 识别并处理重复值

二、识别并处理【缺失值】

方法

  • 删除所在行:如果缺失值的数量非常少,可以选择将缺失值所在的这一行删除,使用函数drop()
    • 先要用布尔索引和isnull()筛选出需要删除的行
    • drop()函数删除筛选出的行
      • drop()函数的参数:
        • index = "需要删除的行数据的index属性"
        • inplace = 默认等于True,表示删除数据
    • 最后用info()查看非空值的结果,如果每一列的结果都一致,则完成了对缺失值的清洗
  • 补全缺失值:如果缺失值的数量较多,并且缺失值所在的这一列(这个属性),并不是分析的重点时,可以对缺失值进行补全,使用函数fillna()
    • fillna()函数的参数:
      • 传入要填充的值,可以是字符,也可以是运算结果
      • inplace = ,用来指定操作是否对这个对象立即生效,一般默认True
  • 重选数据集:如果缺失值的数量较多,并且这一列,这个属性是分析的重点时,就需要直接放弃这个数据集,重新采集数据

三、识别并处理【异常值】

方法

  • 使用isin()函数及其逆函数 判断是否存在某数据,输出结果是布尔型的Series
    - 写法:df["列名"].isin(要包含的值的列表)
    - 因为是判断是否存在括号内的值,存在则返回True,如果想用布尔索引,将异常值,即不存在的筛选出来,则要使用~进行取反,将原来输出为Fales的转为True
  • 使用drop()函数删除
  • 使用info()函数查看每一列的结果是否一致

四、识别并处理【重复值】

方法

  • 使用duplicated()函数对重复值进行处理,判断是否存在重复值
    - 写法:df["列名"].duplicated()
    - 判断法方式:会把出现相同值的第二个及以后的数据,判断为True, 即出现好几个1000,第二个及之后的1000都会被判断为True
posted @   blanolic  阅读(112)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
点击右上角即可分享
微信分享提示