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

Posted 眨个眼就睡着

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了黑马程序员《数据清洗》学习笔记数据清洗与检验部分内容相关的知识,希望对你有一定的参考价值。

目录

第五章  数据清洗与检验

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数据抽取

python数据分析与挖掘学习笔记-淘宝商品数据清洗及预处理

Hadoop学习笔记—20.网站日志分析项目案例数据清洗

python数据分析学习数据清洗与准备

python - 常用数据清洗方法-重复项处理

数据挖掘中数据清洗的方法