黑马程序员《数据清洗》学习笔记数据清洗与检验部分内容

眨个眼就睡着 眨个眼就睡着     2023-01-14     650

关键词:

目录

第五章  数据清洗与检验

5.1 数据去重

5.1.1 完全去重

5.1.2 不完全去重

5.2 缺失值处理

5.2.1 缺失值清洗策略

 5.2.2 去除缺失值

5.2.3 填充缺失值

本章习题


第五章  数据清洗与检验

        常见的数据清洗操作包括重复值的处理、缺失值的处理、异常值的处理等操作。

5.1 数据去重

        数据去重又称重复数据的删除,找出数据文件中重复的数据并将其删除,只保存唯一的数据单元,从而消除冗余数据。数据去重方法分为完全去重和不完全去重。

5.1.1 完全去重

        完全去重指的是消除完全重复的数据。例如两份分别记录不同年份的用户数据信息的表格合并,发现合并后的表格存在完全重复的数据,为了便于使用这些用户数据信息,需要进行数据去重操作。

5.1.2 不完全去重

        数据清洗过程中,所有字段值都相等的重复值是一定要剔除的。根据不同的业务场景,有时还需要选取其中若干字段进行去重操作。

5.2 缺失值处理

      缺失值是指数据集中某个或者某些属性的值是不完整的,产生的原因主要有人为原因和机械原因两种。机械原因是由于机器故障造成数据未能收集或存储失败,人为原因是由主观失误或有意隐瞒造成。

5.2.1 缺失值清洗策略

        下面通过一张图描述缺失数据的缺失率以及重要性划分的四种情况。

 

 5.2.2 去除缺失值

      数据缺失分为两种:一种是行记录的缺失,这种情况又称数据记录丢失;另一种是列值的缺失,即由于各种原因导致的数据记录中某些列的值空缺。

5.2.3 填充缺失值

       数据挖掘中面对的通常都是大型的数据库,它的属性有几十个甚至几百个,因为某个属性值的缺失而放弃大量其他属性,这种删除是对信息的极大浪费,所以产生了插补缺失值的思想与方法。

        常用的填充缺失值的方法是:均值填充、 热卡填充、回归填充、多重填充。

本章习题

四、操作题

1.通过kettle工具,实现一下功能:

(1)对文件进行完全去重

(2)对文件中缺失值进行填充

(1)完全去重

1. 打开kettle工具,建立转换

        新建转换,添加“CSV文件输入”、“唯一行(哈希值)”控件以及Hop跳连接线。如图5-1。

图5-1

 2. 配置”CSV文件输入“控件。

        双击”CSV文件输入“控件,进入”CSV文件输入”界面;单击“浏览”按钮,选择需要进行完全去重处理的CSV文件;单击“获取字段”按钮,kettle自动检索CSV文件;单击“预览”按钮,查看CSV文件数据是否加载到CSV文件输入流中,如图5-2。可以看到已经完成抽取,单击“关闭”→“确定”按钮,完成配置。

 图5-2

 3. 配置“唯一行(哈希值)”控件。

        双击“唯一行(哈希值)”控件,进入“唯一行(哈希值)”界面;在“用来比较的字段”处添加要去重的字段,可以单击“获取”按钮,添加需要去重的字段;单击“确定”按钮完成“唯一行(哈希值)”控件配置。如图5-3。

 图5-3

4. 运行转换

        单击工作区顶部的按钮,运行转换。如图5-4。

图5-4 

(2)缺失值填充

1. 打开kettle工具,创建转换

        新建转换,添加”文本文件输入“控件、”过滤记录“控件、”空操作(什么也不做)“控件、”替换NULL值“控件、”字段选择“控件、“合并记录”控件以及Hop跳连接线。如图5-5。

图5-5 

2. 配置“文本文件输入”控件

        双击“文本文件输入”控件,进入“文本文件输入”界面;单击“浏览”按钮,选择需要填充缺失值的文件;再单击“增加”按钮,将要填充缺失值的文件添加到“文本文件输入”控件中;单击“内容”选择卡,切换到“内容”选择卡界面。如图5-6。

 图5-6

        在图5-6中清除分隔符处的默认分隔符“;”,单击“Insert TAB”按钮,添加一个制表符;取消勾选“头部”复选框,不取消则会在数据抽取时会排除文件第一行数据;单击“字段”选择卡。如图5-7。

 图5-7

        在“字段”选择卡界面,根据文件内容添加对应的字段名称,并指定数据类型,添加的字段都选择“不去掉空格”;单击“预览”按钮,查看数据是否抽取到文本文件流中,可以看到已经成功抽取,如图5-8;单击“关闭”→“确定”按钮,完成文本文件输入”控件配置。

 图5-8

3. 配置“过滤记录”控件

        双击图5-5中的“过滤记录”控件,进入“过滤记录”界面;在“条件”处设置过滤的条件,将过滤字段设置为workclass、过滤值设置为private作为过滤条件;在“发送true数据给步骤”:下拉列表中选择“空操作(什么也不做)”,将另一个选择“空操作(什么也不做)2”;单击“确定”按钮,完成“过滤记录”控件配置,如图5-9。

 图5-9

4. 配置“替换NULL值”控件

        双击5-5中“替换NULL值”控件,进入“替换NULL值”界面;勾选“选择字段”复选框,并在“字段”框添加字段hours_per_week,值替换为44(采用平均值填充,hours_per_week所有值求和的平均值);单击“确定”按钮,完成“替换NULL值”控件配置,如图5-10。

图5-10

5. 配置“合并记录”控件 

        双击图5-5中“合并记录”控件,进入“合并行(比较)”界面;在“旧数据源”:后的下拉列表选择“替换NULL值“,在”新数据源“:后的下拉列表下选择”空操作(什么也不做)2“;在”匹配的关键字“部分添加关键字段userid;单击”确定“按钮,完成配置。如图5-11。

 图5-11

6. 配置”替换NULL值2“控件

        双击图5-5中”替换NULL值2“控件,进入”替换NULL值2“界面;勾选”选择字段“复选框,并在”字段“框添加字段workclass,值替换为private;单击”确定“按钮,完成”替换NULL值2“控件配置。如图5-12。

图5-12 

7. 配置”字段选择“控件

        双击图5-5中”字段选择“控件,进入”选择/改名值”界面;在“移除“选择卡界面添加需要移除的字段名称flagfield;单击”确定“按钮,完成”字段选择“控件配置。如图5-13。

图5-13

8. 运行转换

        单击转换工作区顶部的运行按钮。如图5-14。

 图5-14 

黑马程序员《数据清洗》学习笔记csvjson数据抽取

目录4.1抽取文本数据4.1.1CSV文件的抽取   1.打开Kettle工具,创建转换   2.配置“CSV文件输入”控件   3.配置“表输出”控件   4.运行转换csv_extract4.2抽取Web数据4.2.1JSON文件的数据抽取   1.打开Kettle工具,创建转换 ... 查看详情

python数据分析与挖掘学习笔记-淘宝商品数据清洗及预处理(代码片段)

...开始啦~~这一部分主要是针对淘宝的部分商品数据(小零食)进行预处理。1.读取商品源数据这里拿到的数据是sql数据,因此需要使用mysql。首先我们安装好mysql,可以直接通过指令安装:>sudoapt-geti... 查看详情

机器学习之数据清洗与特征提取

...汪毅雄导语:本文详细的解释了机器学习中,经常会用到数据清洗与特征提取的方法PCA,从理论、数据、代码三个层次予以分析。 机器学习,这个名词大家都耳熟能详。虽然这个概念很早就被人提出来了,但是鉴于科技水平... 查看详情

机器学习中的数据清洗与特征处理综述

...转)背景随着美团交易规模的逐步增大,积累下来的业务数据和交易数据越来越多,这些数据是美团做为一个团购平台最宝贵的财富。通过对这些数据的分析和挖掘,不仅能给美团业务发展方向提供决策支持,也为业务的迭代指... 查看详情

大数据项目4(数据清洗与集成)

数据清洗与集成一、概述二、数据抽取、转换与装载三、数据清洗1.什么是数据清洗?2.数据清洗的意义3.数据质量的重要性四、数据异常的不同类型1.语法类异常2.语义类异常3.覆盖类异常五、数据质量六、数据清洗的任务和... 查看详情

机器学习-数据清洗(代码片段)

本文由brzhang数据清洗首先,为何需要对数据进行清洗数据清洗的工作绝壁是非常枯燥的,做数据研究的的人绝对无法避开这个环节,其根本原因是因为我们从各种渠道拿到的数据可能会出现:1、不合理的数据,你比如,样本中... 查看详情

机器学习-数据清洗(代码片段)

...区,获取更多腾讯海量技术实践干货哦~本文由brzhang发表数据清洗首先,为何需要对数据进行清洗数据清洗的工作绝壁是非常枯燥的,做数据研究的的人绝对无法避开这个环节,其根本原因是因为我们从各种渠道拿到的数据可能... 查看详情

数据清洗

 数据清洗一是为了解决数据质量问题,二是让数据更加适合做挖掘。数据清洗,是整个数据分析过程中不可缺少的一个环节,其结果质量直接关系到模型效果和最终结论。在实际操作中,数据清洗通常会占据分析过程的50%&md... 查看详情

r语言-实验报告-数据清洗

...,以及对新语言软件进行安装。能使用NavicatforMySQL对MySQL数据库进行基本的连接测试,同时,在mysql中新建student数据库。能利用外部SQL脚本文件对数据库进行数据集的导入和初始化。熟悉利用eclipse编程工具,新建项目和工具类对... 查看详情

数据清洗

数据清洗(DataCleaning)——https://wiki.mbalib.com/wiki/%E6%95%B0%E6%8D%AE%E6%B8%85%E6%B4%97目录[隐藏]1 什么是数据清洗[1]2 数据清洗原理[2]3 数据清洗的实现方式与范围[2]4 数据清洗的方法[3]5 相关条目6 参考文献[编辑... 查看详情

数据清洗

预处理阶段预处理阶段主要做两件事情:一是将数据导入处理工具。通常来说,建议使用数据库,单机跑数搭建MySQL环境即可。如果数据量大(千万级以上),可以使用文本文件存储+Python操作的方式。二是看数据。这里包含两个部... 查看详情

转载使用pandas进行数据清洗

使用pandas进行数据清洗本文转载自:蓝鲸的网站分析笔记原文链接:使用python进行数据清洗 目录:数据表中的重复值duplicated()drop_duplicated()数据表中的空值/缺失值isnull()&notnull()dropna()fillna()数据间的空格查看数据中的空格... 查看详情

做datamining,其实大部分时间都花在清洗数据

做DataMining,其实大部分时间都花在清洗数据时间 2016-12-1218:45:50  51CTO原文  http://bigdata.51cto.com/art/201612/524771.htm主题 数据挖掘 前言:很多初学的朋友对大数据挖掘第一直观的印象,都只是业务模型,以... 查看详情

机器学习——数据清洗和特征选择(代码片段)

一、缺省值填充  1.  老版本用Imputerimportnumpyasnpfromsklearn.preprocessingimportImputerX=[[2,2,4,1],[np.nan,3,4,4],[1,1,1,np.nan],[2,2,np.nan,3]]#missing_values(缺失值),strategy(策略,默认平均值),axis(选择行列,0为列,1 查看详情

python数据清洗&预处理入门完整指南(代码片段)

...则立,不预则废,训练机器学习模型也是如此。数据清洗和预处理是模型训练之前的必要过程,否则模型可能就废了。本文是一个初学者指南,将带你领略如何在任意的数据集上,针对任意一个机器学习模型&#... 查看详情

python数据清洗&预处理入门完整指南(代码片段)

...则立,不预则废,训练机器学习模型也是如此。数据清洗和预处理是模型训练之前的必要过程,否则模型可能就废了。本文是一个初学者指南,将带你领略如何在任意的数据集上,针对任意一个机器学习模型&#... 查看详情

数据清洗

为什么要预处理数据?数据缺失:记录为空&属性为空数据重复:完全重复&不完全重复数据错误:异常值&不一致数据不可用:数据正确但不可用如何预防脏数据?制定数据标准优化系统设计1. 处理数据缺失:忽略该... 查看详情

数据清洗一:(代码片段)

  原数据格式:  转换的目标格式: 脚本目的:转换数据的格式,属于数据清洗部分。脚本逻辑,将文件读取后,将第一列设置为key,第三列设为列表组成的value,建立dict;然后循环dict来统计items两两之间重复的id以... 查看详情