《Using OpenRefine》翻译~6

来源:互联网 发布:淘宝一千零一夜视频4 编辑:程序博客网 时间:2024/05/16 11:51

上一篇:《Using OpenRefine》翻译~5

第二章:分析和修改数据

本章中,我们将更加深入的学习OpenRefine的数据分析和修改功能,主要的内容包括下面六点:

*点1-数据排序

*点2-数据透视

*点3-重复检测

*点4-应用一个文本过滤

*点5-使用简单单元格转换

*点6-移除匹配行

和第一章:初识OpenRefine一样,本章可以让读者按照自己的需要或爱好选择阅读顺序,并不需要按照顺序阅读。按照顺序阅读也可以,但并不是必须的。

各个要点内容长短不一,有些很短,但有些却不止一两页,比如要点2-数据透视,包括了数据透视的方方面面,这个要点包括了很多页内容并且有很多子内容。

本章学习中,我们建议你使用Import Project 导入项目chapter2.openrefine.tar.gz 。当然你也可以使用第一章中使用的示例文件chapter1.tsv 



1-数据排序

本点中,我们将学习如何使用排序功能来作为观察数据的手段,以及在进一步处理数据前如何对行进行排序。

因为排过序的值更加容易理解和分析,某些时候你需要使用OpenRefine的排序功能,你可能是想用来观察下数据或者就是想对数据进行排序.我们以Record ID 列为例进行排序,选择列菜单中的Sort... ,将弹出如下窗口:


单元格值可以按照文本(区别大小写或者不区别)、数字、日期、布尔值排序,对每个 类别有两种不同的排序方式:

Text: 文本:从a到z排序或者从z到a排序

Numbers数字: 升序或者降序

Dates: 日期升序或者日期降序

Booleans: false值先于true值 或true值先于false值 

还有我们可以对错误值和空值指定排序顺序。比如错误值可以排在最前面(这样容易发现问题),空值排在最后(因为空值一般没有意义),而有效值居中。

Record ID列通过按数字升序排列为例,我们就会获得一列以7、9、14等等标识的列,而打开时是以267220、346260、 267098标识顺序的,下图对排序前后的情况做了比对:


如果按照Text: 文本排序的话,会得到以100、1001、10019开始的一列。同时应该关注的一点是:排序并不会被记录在项目操作历史中。你可以在屏幕左侧顶部的Undo / Redo 页中确认下。

那是因为排序并不会改变数据,其仅仅是改变了显示方式,比如行列互换、隐藏不想显示的列(就像excel的排序过滤功能)。所以每次对某列进行排序,你就会面对三种抉择:取消排序回到原来状态、暂时保持、永久改变。

你无法能在列菜单中做到上面三种要求,但是你可以在屏幕顶部的快捷菜单Sort来做到:


对行进行重新排序

Sort菜单可以让你移除排序操作或者永久对行进行排序。另外,该功能还能提醒你究竟对哪些列进行了排序,还能够对多列进行组合排列操作(见上图)。举个例子,你可以先对Registration Number排序,然后再对Object Title列排序,过会你还可以去掉按Registration Number排序的操作(通过菜单Sort| By Registration Number | Remove sort ),最后再将排序永久保存。每个排序的子菜单还能够通过点击一次来改变排序顺序(比如升序变降序) 

记得如果你想将排序后的结果再进行后续操作,一定要将排序结果永久保存,比如对于空白单元格或者填充单元格,为了避免前后不一致的错误,在3-重复检测中,我们将学习如何利用排序的预处理手段来移除重复值。


下一篇:《Using OpenRefine》翻译~7