走进大数据丨 ETL – 数据清洗过程
我们已经对数据清洗有了一定概念:“数据清洗确保无法辨认的数据不会进入数据仓库。无法辨认的数据将影响到数据仓库中通过联机分析处理(OLAP)、数据挖掘和关键绩效指标(KPI)所产生的报表。”数据清洗, 是整个数据分析过程中不可缺少的一个环节,其结果质量直接关系到模型效果和最终结论。
在实际操作中,数据清洗通常会占据分析过程的50%—80%的时间。所以数据清洗的过程就显得尤为重要,在下面的图上我们可以看到,数据清洗操作是在数据抽取完成之后,然而事实上,数据清洗的操作在整个ETL过程中都会有。比如,我们在数据抽取时会过滤掉某些字段,去除掉重复字段等;在数据加载时,我们会通过查询语法将部分不需要的信息剔除掉。这些都可以算是对数据的清洗。这样做的目的是降低我们数据清洗过程的复杂度,提高效率。
数据清洗的步骤大体可以分为这么几步:
预处理阶段:
-
将数据导入处理工具。也就是我们数据的抽取过程,将数据导入到处理工具中。
-
看数据。这里包含两个部分:一个是看元数据,包括字段解释、数据来源、代码表等等一切描述数据的信息;再有是抽取一部分数据,使用人工查看方式,对数据本身有一个直观的了解,并且初步发现一些问题,为之后的处理做准备
分析处理阶段:
-
缺失值清洗:
-
去除不需要的字段:对某些字段内容,数据分析过程可能用不上,就需要将其删除,直接delete,建议清洗的每一步都做备份,防止错删。
-
填充缺失内容:该字段需要使用,领取免费资料及课程加大数据学习交流扣群957加上205后面962但是某些数据上该字段缺失,这时候需要我们给上默认值,或者计算结果(均值、中位数、众数等)填充上去
-
重新取数:如果某些字段数据非常重要,但是数据缺失又很严重,这时候就需要我们通过其他渠道重新获取数据将数据填充进去。
-
-
格式内容清洗:
-
时间日期、数值、全半角显示不一致等:这种问题通常与输入端有关,在整合多来源数据时也有可能遇到,将其处理成一致的某种格式即可。
-
内容中有不该存在的字符:某些内容可能只包括一部分字符,比如身份证号是数字+字母。最典型的就是头、尾、中间的空格,也可能出现姓名中存在数字符号、身份证号中出现汉字等问题。这种情况下,需要以半自动校验半人工方式来找出可能存在的问题,并去除不需要的字符。
-
内容与该字段应有内容不符:一般数据获取时会有前端校验,但是也不乏这些问题会出现,此时需要我们再作处理,非重要字段可以去除掉,重要字段需要我们在做缺失值处理,处理方式就是上面提到的缺失值清洗。
-
-
逻辑错误清洗:
-
去重:建议把去重放在格式内容清洗之后,原因举例:多个空格导致工具认为“吴亦凡”和“吴 亦凡”不是一个人,去重失败。而且,并不是所有的重复都能这么简单的去掉。
-
去除不合理值:有人填表时候瞎填,年龄200岁,年收入100000万(估计是没看见”万“字),这种的就要么删掉,要么按缺失值处理。
-
修正属性依赖冲突:某些字段之间是可以相互验证的,比如北京市和北京市的邮政编码,你的身份证号和你的年龄,籍贯等这时候需要我们指定一个可靠的字段,然后去除或者重构不可靠的字段。比如:身份证号字段上显示你是20岁,但是年龄字段上28岁,这是我们就以身份证上的信息为可靠字段,将年龄字段改为20岁。
-
-
非需求数据清洗:很简单就是把不需要的字段删除(勤备份)
-
校验:
-
数据格式校验:验证数据格式是不是都符合标准化格式。
-
关联性校验:有时我们的数据来源可能有多个渠道,如果多个渠道获取的同一信息出现不一致的情况,需要我们重新判断调整数据值,或者去除数据。
-
数据清洗过程中出现了很多判断问题,一条数据是不是合乎标准,是否存在错误,我们可以通过相应算法去实现。关于数据清洗的大致介绍到这,数据清洗完成过后,就进入了数据转换过程。