第二章主要讲OpenRefine的进阶操作,希望能帮助你们!
1.OpenRefine工具的数据排序功能
数据排序是一种常见的数据清理操作,它主要是按照指定方式排列数据,这样不仅可以对数据进行检查和纠错,还可以通过浏览排序后的数据查看数据的特征或趋势,从而找到解决问题的线索。
例如单击OpenRefine项目中height/cm列的下拉菜单,选择“排序…”即可打开“排序,按照height/cm”的对话框。
OpenRefine工具支持4种排序依据:文本、数字、日期和布尔,并为每种排序依据提供了两种相应的排序方式。
“空白错误选择排序方式”包含“合法值”“错误”和“空白”三个选项,其中排在最上方的“合法值”优先级越高,最下方的“空白”优先级最低,说明数据中的合法值会排在前面,错误值次之,空值排在末尾。
由于排序操作只改变了数据的顺序,不会改变数据本身,因此排序操作不会被记录到历史操作中。若希望撤销之前的排序操作,可以单击排过序的项目页面左上方新增的快捷菜单“排序”,从弹出的下拉菜单中选择“不排序”,将会恢复到排序前的数据。
2.OpenRefine工具的数据归类功能,可以采用多种方式对数据进行归类分组
数据归类是OpenRefine工具中常见的功能之一,它主要用于从数据中获得一个变化的子集,方便用户从多个角度查看数据,并且不会改变数据本身。OpenRefine工具支持多种归类操作,包括文本归类、数值归类、时间线归类、散点图归类以及自定义归类。、
(1)文本归类
文本归类用于将特定文本值进行分类归组。打开Athletes_info项目中event列的下拉菜单,在下拉菜单中选择【归类】→【文本归类】,页面左侧会打开显示归类后结果的“归类/过滤器” 。
event列按文本归类后将该列中的相同文本划分为多个分类,同时显示了每个分类的数量。此时单击任一分类可在右侧查看该分类的具体数据。
“归类/过滤器”底部有个 “按归类中的数量来归类”选项,通过单击该选项可根据显示范围来筛选文本分类后的结果。
(2)数值归类
数值归类用于查看一列数据的分布情况。例如,打开Athletes_info项目中height/cm列的下拉菜单,在下拉菜单中选择【归类】→【数值归类】,页面左侧会打开显示归类后结果的“归类/过滤器”
(3)自定义归类
自定义归类有多种方式,常见的方式包括按字归类、复数归类和按空白(null或空字符串)归类等。
例如:
3.OpenRefine工具的重复检测功能
重复检测是OpenRefine工具的常用功能之一,它主要是从数据中获取重复值,并根据实际需求删除这些重复值。
如果希望删除name列的重复值,那么需要先对包含重复值的数据进行排序,再删除按复数归类后值为true的结果。
例如:
OpenRefine工具中的重复检测功能只适用于文本类型的数据。
4.OpenRefine工具的数据填充功能
数据填充是使用指定的字符或数字对空缺位置进行填充,其目的是保证数据的完整性。
5.OpenRefine工具的文本过滤功能
文本过滤用于快速匹配某个特定的字符串。
6.OpenRefine工具的数据转换功能
常用转换包括移除首尾空白、收起连续空白、首字母大写、全大写、全小写、文本化等功能。
若希望删除weight列数据中的“kg”,可以通过OpenRefine工具的表达式功能实现。OpenRefine中的表达式支持GREL(Genderal Refine Exception Language)、Python/Jython和Clojure三种语言。
需要说明的是,在编写Python语言的表达式时,需要保证表达式中必须有return语句。