《Using OpenRefine》翻译~6
上一篇:《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-重复检测中,我们将学习如何利用排序的预处理手段来移除重复值。