AI知识库

53AI知识库

学习大模型的前沿技术与行业应用场景


数据清洗累死个人?快试试这款神器!
发布日期:2024-06-04 06:19:29 浏览次数: 1773



做美美的可视化之前,你肯定也遇到过这样的问题——

得到的数据奇奇怪怪格式不统一,也找不到合适的方式用 excel 统一处理。遇到这种情况,我们只能一条一条人肉改成我们想要的数据吗?

当然不用!课代表今天为大家推荐一款好用的数据清洗工具 OpenRefine

 ⌂ 点击图片查看大图

它的前身是谷歌开发的数据清洗工具 Google Refine,2012 年开放源代码后改为现在的 OpenRefine。

它类似于传统 excel 处理软件,但是在数据清洗、数据探索以及数据转换方面非常有效,在处理数据时也有更多优势。例如:使用 excel 容易导致误操作,而 OpenRefine 则可以随时退回上一步;OpenRefine 处理大数据的速度会更快;相较于 excel 简单的透视表功能,OpenRefine 可以进行进阶的数据分类分析……

那么,今天课代表就带大家一起学习这款工具。为了让大家学得更清楚,课代表还为大家精心准备了一份用来实战的“脏数据”,里面记录了著名的泰坦尼克号上的乘客信息。

您可以在公众号后台回复“67”一键获得项目的数据集、OpenRefine 下载链接以及教程的英文电子版。准备好这些就和我们一起动手操练起来吧!

✧✧

清洗数据,浏览器就行!


OpenRefine 是一个开源的网络应用,可以在计算机浏览器中直接运行,按照提示安装即可使用(你可以在它的官网下载它的最新版本:https://openrefine.org/)。

如果没有自动弹出,在浏览器中输入“127.0.0.1:3333”也可以打开。需要注意的是:使用 OpenRefine 需要保证电脑上有最新的 java 环境。

Step 1 :创建新项目。

打开 OpenRefine 后,点击“新建项目-选择文件”,将准备好的数据集导入,随后点击“下一步”。

 ⌂ 点击图片查看大图

Step 2:数据初步处理。

然后,根据数据预览选择合适的字符编码。

如果汉字显示为乱码,需要将字符编码选择为“utf-8”。根据需求选择数据的分割方式、表列标题、解析数据格式为日期等,修改项目名称后点击新建项目即可。

 ⌂ 点击图片查看大图

课代表强烈推荐大家在新建项目之前,将单元格中的文本解析为数字、日期等等格式(将图中右下角被框中的选项选中),这样可以为后续的处理带来很多的便利。

Step 3:开始清洗。

导入成功后就可以看到具体的操作界面了。

因为 OpenRefine 是以数据库的形式去运行,所以它默认只预览10行数据。当然,如果你心里没有底的话,可以根据需要选择预览更多行。清洗完成后点击右上角的“导出”按钮即可。

 ⌂ 点击图片查看大图

相似与不同,怎么找?


泰坦尼克号的乘客们来自天南地北,目的地也各不相同。如果想借助 OpenRefine 看看哪些有缘分的乘客既是是“老乡”又有同一目的地,我们该怎么做呢?

Step 1:进入文本归类。

首先,我们需要点击列标题左侧的“▼”标志,选择“归类-文本归类”。

 ⌂ 点击图片查看大图

左侧将出现对该列的文本分类结果,我们可以看到不同种数据的类别及个数,从而对数据整体有更好的把握。

但是,不是所有的数据集都这么友好。在数据处理中,我们经常会遇到内容相同但拼写不同的情况,例如“new york”和“New York”。这给我们的数据处理带来了很大的麻烦,但 OpenRefine 可以轻松识别文本的大小写、单复数等,为我们提供便利。

在这份表格中,home.dest 列中既显示来自地又显示目的地的数据中,有些使用空格区分,有些使用“/”区分,格式也不完全相同。这时我们可以使用文本归类的“簇集”功能对它进行清洗。

Step 2:进入文本簇集。

点击“簇集”按钮,进入相似文本的统一处理过程。

 ⌂ 点击图片查看大图

在“簇集”功能中,OpenRefine 为用户提供了不同的相似文本判断方法以及关键词算法,帮助我们更好地将实际内容一致的数据处理成统一格式。

 ⌂ 点击图片查看大图

在这里,我们可以先选择合适的数据处理方法及关键词算法,再按需要将需要合并的内容的复选框选中,修改为统一的新数据值内容(例如,将第一个的空格改为使用“/”),最后合并选中即可。在实际使用中,还可以按照需要进行再次簇集来得到一个更好的效果。

Step 3:得到结果。

得到的结果如下图,谁是船上的有缘人一目了然。当然,你也可以直接在这个窗口中对文本直接进行修改。

 ⌂ 点击图片查看大图

数字凌乱,你不能凌乱!


很多时候,我们需要清洗的数据的数字并不是那么“亲切”——它有时候是文本格式,有时候又夹杂了一些空值、字母或者符号。如何找到我们需要清理的那些数据呢?

Step 1:数字化数据。

点击列标题左侧的“▼”标志,选择“编辑单元格-常用转换-数字化”。

 ⌂ 点击图片查看大图

Step 2:进入数值归类

将列数据更改为数字类型后,再次点击▼标志,选择“归类-数值归类”。

 ⌂ 点击图片查看大图

Step3:排除异常数据

将左侧数值型之外复选框选中,可以查看非数值型的数据。同时,我们还可以根据数字数据的性质拖动可能的分布区间。这样可以判断异常值的情况,将不可能的数据排除在外。

 ⌂ 点击图片查看大图

再次点击“▼”标志,选择“归类-文本归类”。我们可以看到,需要清洗的数据都有什么样不同的内容。

 ⌂ 点击图片查看大图

Step4:进行数据清洗

经过筛选发现脏数据了,我们该怎么处理呢?

点击 age 列旁的“▼”标志,选择“编辑单元格-转换”。

 ⌂ 点击图片查看大图

这时就需要一点点编程知识了,但相信这难不倒你。如果我们需要将所有的“+”替换成空白,那么,在表达式处输入这行代码,之后点击确定即可:

value.replace("+", "")

 ⌂ 点击图片查看大图

这个表达式“replace”的含义是替换,针对括号里的前值进行搜索并替换为后值。这里你也可以看到替换后的值的预览。

在这里,我们还需要替换“NA”“、”等等内容,我们不需要重复点击“编辑单元格-转换”,可以直接将表达式连在一起统一处理——

value.replace("+","").replace("NA","").replace("、","").replace("~","")

 ⌂ 点击图片查看大图

更多的表达式,你可以在 OpenRefine 的官方教程中找到,这非常值得你去探索。

学无止境,书可以参考!


当然,课代表介绍的功能只是九牛一毛。

关于 OpenRefine 使用更多的内容,我们推荐你参考 Using OpenRefine 这本书,它由世界上最大的编程相关书籍出版商 Packt Publishing 出版。

这本书囊括了 OpenRefine 安装、创建新项目、探索数据、分析数据等等一系列的的内容,遇到什么不会,查这本详细的说明书就行!

 ⌂ 点击图片查看大图


53AI,企业落地应用大模型首选服务商

产品:大模型应用平台+智能体定制开发+落地咨询服务

承诺:先做场景POC验证,看到效果再签署服务协议。零风险落地应用大模型,已交付160+中大型企业

联系我们

售前咨询
186 6662 7370
预约演示
185 8882 0121

微信扫码

与创始人交个朋友

回到顶部

 
扫码咨询