首页 > 其他分享 >数据分析基础笔记 - 数据清洗

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

时间:2023-03-10 09:11:55浏览次数:37  
标签:数据分析 info 函数 数据 笔记 一列 清洗 True 缺失

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

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

脏数据

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

脏数据存在三种情况:

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

处理思路

  • 拿到一份数据集,首先要导入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

标签:数据分析,info,函数,数据,笔记,一列,清洗,True,缺失
From: https://www.cnblogs.com/blanolic-trouvaille/p/17196578.html

相关文章

  • [学习笔记]《C++ Primer》第七章 类
    thisthis是常量指针,指向非常量版本的类MyClass*const成员函数(memberfunction)所有成员都必须在类的内部声明,但成员函数体可以定义在类内或类外。->成员函数的调用:调......
  • 3.9笔记
    createdatabasenidaye;创建nidaye的数据库showdatabases;查看所有数据库usenidaye;使用你自己的数据库showtables#查看当前数据库下所有的表整数:int小数float日期......
  • 【WinForm】 自学笔记二:连接数据库以及查询结果显示
    本次使用 SqlConnection来连接数据库,使用DataGridView来显示查询的结果。最终效果如下:  一、连接数据库1.获取连接数据库所需的字符串,包括服务器名称,数据库名称......
  • [machine-learning学习笔记]逻辑回归
    逻辑回归目的:分类一、Sigmoid函数​ 公式如下:\[g(z)=\frac{1}{1+e^{-z}}\]​ 图中\(Sigmoid\)函数将任意输入映射到\([0,1]\)区间,我们通过线性回归的到预测值,再......
  • GO语言学习笔记-接口篇 Study for Go ! Chapter six - Interface
    持续更新Go语言学习进度中......GO语言学习笔记-类型篇StudyforGo!Chapterone-Type-slowlydance2me-博客园(cnblogs.com)GO语言学习笔记-表达式篇Study......
  • FLINK实时数仓笔记2
    离线架构优点:耦合性能低,稳定性高缺点:时效性差一点说明:1.项目经理(架构师)是大公司出来的,追求系统的稳定性2.耦合性低,稳定性高3.考虑到公司未来的发展,数据量一定会变得......
  • C++笔记--函数、预处理
    1函数1.1函数的介绍1.1.1函数的概述函数是c语言的功能单位。实现一个功能可以封装一个函数来实现。定义函数的时候一切以功能为目的,根据功能去定函数的参数和返回值......
  • React学习笔记(三)—— 组件高级
    一、列表和keys1.1、ListsandKeys(列表和键)首先,我们回顾一下在javascript中怎么去变换列表。下面了的代码,我们用到了数组函数的map方法来实现数组的每一个值变成它的2......
  • 《逆向工程核心原理》学习笔记3
    《逆向工程核心原理》学习笔记3http://blog.iz4.cc/note/2021/11/%E3%80%8A%E9%80%86%E5%90%91%E5%B7%A5%E7%A8%8B%E6%A0%B8%E5%BF%83%E5%8E%9F%E7%90%86%E3%80%8B%E5%AD%......
  • Flutter 笔记
    FlutterFlutter核心原理底层绘制采用OpenGL,调用原生绘图接口,实现高性能什么是UI框架?由于操作系统直接操作API来绘制图片十分繁琐,将操作系统原生API封装在一个编程框架......