首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

ETL-数据清洗过程

我们已经对数据清洗有了一定概念:“数据清洗确保无法辨认的数据不会进入数据仓库。无法辨认的数据将影响到数据仓库中通过联机分析处理(OLAP)、数据挖掘和关键绩效指标(KPI)所产生的报表。”数据清洗, 是整个数据分析过程中不可缺少的一个环节,其结果质量直接关系到模型效果和最终结论。

在实际操作中,数据清洗通常会占据分析过程的50%—80%的时间。所以数据清洗的过程就显得尤为重要,在下面的图上我们可以看到,数据清洗操作是在数据抽取完成之后,然而事实上,数据清洗的操作在整个ETL过程中都会有。比如,我们在数据抽取时会过滤掉某些字段,去除掉重复字段等;在数据加载时,我们会通过查询语法将部分不需要的信息剔除掉。这些都可以算是对数据的清洗。这样做的目的是降低我们数据清洗过程的复杂度,提高效率。

数据清洗的步骤大体可以分为这么几步:

预处理阶段:

将数据导入处理工具。也就是我们数据的抽取过程,将数据导入到处理工具中。

看数据。这里包含两个部分:一个是看元数据,包括字段解释、数据来源、代码表等等一切描述数据的信息;再有是抽取一部分数据,使用人工查看方式,对数据本身有一个直观的了解,并且初步发现一些问题,为之后的处理做准备

分析处理阶段:

缺失值清洗:

去除不需要的字段:对某些字段内容,数据分析过程可能用不上,就需要将其删除,直接delete,建议清洗的每一步都做备份,防止错删。

填充缺失内容:该字段需要使用,但是某些数据上该字段缺失,这时候需要我们给上默认值,或者计算结果(均值、中位数、众数等)填充上去

重新取数:如果某些字段数据非常重要,但是数据缺失又很严重,这时候就需要我们通过其他渠道重新获取数据将数据填充进去。

格式内容清洗:

时间日期、数值、全半角显示不一致等:这种问题通常与输入端有关,在整合多来源数据时也有可能遇到,将其处理成一致的某种格式即可。

内容中有不该存在的字符:某些内容可能只包括一部分字符,比如身份证号是数字+字母。最典型的就是头、尾、中间的空格,也可能出现姓名中存在数字符号、身份证号中出现汉字等问题。这种情况下,需要以半自动校验半人工方式来找出可能存在的问题,并去除不需要的字符。

内容与该字段应有内容不符:一般数据获取时会有前端校验,但是也不乏这些问题会出现,此时需要我们再作处理,非重要字段可以去除掉,重要字段需要我们在做缺失值处理,处理方式就是上面提到的缺失值清洗。

逻辑错误清洗:

去重:建议把去重放在格式内容清洗之后,原因举例:多个空格导致工具认为“吴亦凡”和“吴 亦凡”不是一个人,去重失败。而且,并不是所有的重复都能这么简单的去掉。

去除不合理值:有人填表时候瞎填,年龄200岁,年收入100000万(估计是没看见”万“字),这种的就要么删掉,要么按缺失值处理。

修正属性依赖冲突:某些字段之间是可以相互验证的,比如北京市和北京市的邮政编码,你的身份证号和你的年龄,籍贯等这时候需要我们指定一个可靠的字段,然后去除或者重构不可靠的字段。比如:身份证号字段上显示你是20岁,但是年龄字段上28岁,这是我们就以身份证上的信息为可靠字段,将年龄字段改为20岁。

非需求数据清洗:很简单就是把不需要的字段删除(勤备份)

校验:

数据格式校验:验证数据格式是不是都符合标准化格式。

关联性校验:有时我们的数据来源可能有多个渠道,如果多个渠道获取的同一信息出现不一致的情况,需要我们重新判断调整数据值,或者去除数据。

数据清洗过程中出现了很多判断问题,一条数据是不是合乎标准,是否存在错误,我们可以通过相应算法去实现。关于数据清洗的大致介绍到这,数据清洗完成过后,就进入了数据转换过程。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20190928A0H6EC00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券