请选择 进入手机版 | 继续访问电脑版
查看: 200|回复: 0

[数据清洗] EXCEL数据太“脏”无从下手?何须用python,ETL一分钟搞定

[复制链接]

301

主题

301

帖子

1071

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1071
 楼主| 发表于 2021-9-28 01:53:58 | 显示全部楼层 |阅读模式
  我们日常在处理数据的过程中,总是会遇到各种千奇百怪的数据源,不是这里有重复值,就是那里的数据有缺失,这些“脏数据”不得不花费我们大量的时间去进行清理,让人十分苦恼。造成这些“脏数据”的原因有两个,一是系统默认的数据字段不规范,在导出时经常带有一些不标准的字符,二是人为录入错误,因为在数据的生成过程中,往往会受到人为的干预,比如重复录入、数据类型不一致等等。这些“脏”数据不仅没有价值,还会“污染”其他的数据,增加数据清理的时间,影响数据分析的效率。

1.png

  我们在EXCEL中经常遇到的“脏数据”主要有以下几种:

  1、 缺失数据
  主要指字段的信息出现了缺失,例如字段里应该录入某些信息的,但是却出现了空白,导致数据缺失的原因有很多种,例如系统问题、人为问题等,这就需要对数据进行补录或者填充其他的信息。

  2、 重复数据
  数据出现重复值是经常遇到的问题,主要是重复录入导致的,一般处理起来比较简单,只需要在EXCEL中去除重复数据即可。

  3、 错误数据
  错误数据一般是因为数据没有按照规定程序进行记录而出现的。例如异常值,或者是数据不统一,关于广州的记录有广州guangzhou。

  4、 不可用数据
  有些数据虽然正确但却无法使用。例如字段应录入城市名称的,但是出现了广州天河区这样不规范的字段,则需要用公式对城市的名称进行提取。

  对于以上所描述的各种问题,通常我们可以利用EXCEL自身的功能或公式进行清理,但是效率非常低,很多步骤都要靠手工进行操作,而且很多需求没办法实现。VBA是其中的一种解决办法,通过编写宏代码,可以对不规范的EXCEL表格进行自动化的清洗,但是难度较大,一般人不容易入门,而且写代码的过程需花费大量的时间,python就更不用说了,远水救不了近火。目前最好的解决办法是用微软的Power Query组件,这个组件可以实现很多数据清洗的需求,例如逆透视、提取、分组等操作可以轻松完成。

2.png

  但是还有比Power Query更加给力的清洗工具,那就是ETL了。ETL是一种对数据进行抽取(extract)、转换(transform)、加载(load)的工具,经常用在数据仓库上,数据清洗的功能非常强大,通过简单的鼠标拖拽,便可以快速完成对各种脏数据的清洗工作。ETL在日常工作中运用的并不是特别广泛,除了中大型企业或者IT人员会用到之外,一般人很少会接触到。市场上ETL的工具也有很多,类似datastageinformaticakettle等,但不是收费太高就是性能太弱,在这里推荐一款平民化的ETL工具:智分析。下面以智分析为模型对ETL清洗数据的功能进行介绍。

3.png


  1、 数据源连接
  在数据源的连接上,智分析支持文本、Kafka、关系等五种数据源,既可以直接连接本地的EXCEL文件,也可以支持mysql、阿里云等关系型数据库的处理,只要把数据源的组件拉拽到展示区里,点击数据连接,便可以连接到您的个人数据源。

4.png

  2、 数据预处理
  数据预处理是整个ETL处理过程的核心,EXCEL常见的清洗功能点在这里基本都能找到,例如提供了空值处理、合并、分列等常规功能,还提供了列转行、过滤、JOIN等高阶功能,性能非常强悍。操作方法也非常简单,只要把这些组件一一拉拽到展示区里,并与数据源连接起来,点击执行,便可以实现数据清洗的效果。

5.png

  如果以上的组件还不能满足数据清洗的需求时,有编程基础的同学可以再利用脚本模块继续对数据源进行加工,这里提供了SQLPYTHON两种脚本模块,可以通过编程语言对数据源进行其他的清洗工作。

6.png

  3、 数据源保存
  完成了数据的预处理后,便可以选择数据源的保存方式,智分析提供了5中保存方式:关系目标表(覆盖)、关系目标表(追加)、关系目标表(插入或更新)、导出数据到HDFS、输出到数据集。输出后的数据源可以覆盖原先的数据源,也可以重新建立新表进行保存,保存方式非常灵活和方便。

7.png

4、 效果验证
  为了验证ETL的实际功能如何,我从世界银行下载了一份世界各国的GDP数据,并把数据源导进了智分析的ETL处理系统,经过几分钟的清洗和加工,这份看起来非常乱的数据被我完美地实现清洗,输出的数据源非常整齐和统一。

8.png

  ▲未加工数据

9.png

  ▲经过ETL处理后数据

  从上面的模型中可以看出,ETL在对数据清洗的过程中基本是零代码的,只需通过简单的鼠标拉拽便可以快速实现数据清洗的效果,这对于大部分的职场人士来说,ETL的功能是非常实用和友好的,不用学习任何代码就可以做到编程语言可以做到的事情,简直是太强大了。如果你经常面对这些“脏数据”而无从下手,那就赶紧去掌握一门ETL工具吧。

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表