Python / 17 数据清洗

数据清洗

理想中,我们获取的数据都是一样的格式,可是现实中,会有许多脏数据,有时候是数据太冗余,有时候是数据缺失,有时候是同一种类数据拥有不同的数据格式。比如生日,有的人使用阿拉伯数字,有的人使用英文简写,有的人则是加入了中文字符。

如果只是简单的某一列数据问题,我们可以写一个脚本进行处理,可是,当数据太复杂,数据量太大,我们自己编写脚步就太浪费时间和精力了。有没有什么可视化工具,可以像操作Excel表格很方便的对数据进行分类,排序清洗那?有问题,肯定会有解决问题的方案。我们接下来讲解的就是数据清洗界的神器 OpenRefine.

OpenRefine 是谷歌一个开源项目,最早这个项目起源于2009年一家叫做Metaweb的公司,后来这个公司被谷歌收购。
OpenRefine 可以方便的清洗数据,并且拥有简单容易操作的界面,让即使非计算机科班的人员也可以很方便的使用这个工具进行数据的清洗工作。

1. 安装 OpenRefine

OpenFine的安装,就像安装正常的桌面的软件一样,不需要额外设置内容,直接安装即可。双击之后,打开 OpenRefine。

如下图所示:

从以上的页面中,我们可以知道,我们可以导入本机的 CSV,JSON 或者 Excel等 文件,也可以直接从互联网上面进行解析,也可以连接数据库,以及从黏贴版和 Google Data 中获取原始数据。

Tips:OpenRefine 默认打开的 IP 为 127.0.0.1:3333。

2. 简单的数据清洗例子

这里我用一组测试数据进行演示简单的操作。首先,在导入原始数据之后,点击 create project 来创建工程。

接下来,我们选择需要进行清洗数据的列,点击上面的向下的箭头,在弹出的菜单中选择 facet 接下来选择 Text facet。

在页面的左边的浮框中,我们可以看到有许多组不同的数据,这里我们发现 Altbeir 和 Altbier 是同一个数据,其中 Altbeir 是拼写错误的单词,其实也就是我们常说的脏数据,我们需要将它合并到 Altbier中。

我们在单词旁边单词 edit 按钮,然后点击edit进行编辑,接下来点击apply。

最后,我们看到数据被归并到一起了,脏数据被清洗掉了。

3. 小结

上面演示的只是清除脏数据的最基本操作步骤,我们还可以对数据进行排序,以及通过正则表达式来筛选数据,也可以让软件智能地为我们推荐一些该归并的单词。总之,OpenRefine 已经成为数据清洗方面的主流软件,大家平时需要的功能都可以通过这款软件进行操作,方便而又快捷。