使用OpenRefine
人们花费大量时间清理和操作数据。幸运的是,有一个工具可以让所有这一切变得更容易。它被称为OpenRefine,它是免费的!
本教程将引导您完成一些您需要执行的最常见的数据操作任务。当你完成后,你应该知道如何:
- 清理拼写不一致
- 删除前导和尾随空格
- 将单元格拆分为多个列
如果您使用的计算机上已安装了OpenRefine,则可以跳过第一步。
在开始之前,请将此文件下载到您的计算机上。这是一个名为NJShipwrecks.csv的示例数据文件。
1.安装OpenRefine
前往www.openrefine.org/download并下载OpenRefine 2.7,就像下载任何软件一样。它适用于Windows和Mac。
注意:如果您使用的是Mac,当您尝试打开OpenRefine时,会收到一条消息,指出您无法从身份不明的开发人员打开软件,请执行以下操作:转到“ 系统偏好设置”,然后选择“ 安全和隐私”。在“ 常规”选项卡上,单击锁以进行更改,然后单击“ 打开”。您现在应该可以打开该软件。
2.打开OpenRefine
双击OpenRefine图标。它应该在您的Web浏览器中打开。有时,无论出于何种原因,双击时OpenRefine都不会启动。如果您遇到这种情况,请在浏览器的地址栏中输入localhost:3333并按回车键。
3.打开数据文件
单击Create Project,然后选择Files。导航到NJShipwrecks.csv文件,然后单击“ 下一步”。
4.这到底是什么意思?
这只是您在OpenRefine中使用它时数据显示方式的预览。你不应该做任何改变; 只需单击“ 创建项目”。
5.这到底是什么(第2部分)?
这是您用于处理数据的主界面。它有点像Excel,但请注意它一次只显示10条记录。那是因为你不应该按记录处理你的数据记录; 你会找到将它分组的方法,然后再使用它。我们接下来会尝试。
6.创建一个分面
在OpenRefine中,facet是一种隔离某些共享功能的记录的方法。当你自己尝试时,更容易看出我的意思。单击VESSEL TYPE列标题旁边的向下箭头。然后选择Facet,然后选择Text Facet。
7.理解分面
查看OpenRefine窗口左侧显示的VESSEL TYPE列表。你能告诉那里发生了什么吗?OpenRefine的facet函数将每个出现在VESSEL TYPE列中的术语组合在一起,以及它出现的次数。
您可以按名称或按计数按字母顺序对术语列表进行排序,具体取决于这些术语在列表中出现的次数。如果单击其中一个术语,则仅选择包含该术语的那些行。这允许您一次处理一个数据块。
understanding-facets
8.清理一些数据
仔细查看该术语列表。你会看到它包括两个可能意味着相同的术语:Bark steamer和Bark Steamer。即使人类可以说他们的意思是指同一件事,但计算机并不知道这一点。因此,清理这些数据以创建准确的可视化和分析非常重要。
将鼠标悬停在构面列表中的Bark Steamer术语上,以便您可以看到“ 编辑”选项。按编辑,然后在出现的框中,将Bark Steamer更改为Bark steamer并按Apply。现在这两个术语合并为一个。
9.清理一些数据的另一种方法
再看一下Facet框。您将看到一个标记为Cluster的按钮。点击它。
生成的框显示OpenRefine认为应该合并在一起的术语。选中您认为应合并的术语框,然后单击Merge Selected and Re-Cluster。
现在,在“ Method”下拉菜单中尝试一些其他项目。当你尝试不同的方法时会发生什么?每个都使用不同的算法来尝试匹配术语。
完成实验后,单击“ 关闭”。您会注意到您的分面列表中的条目较少。
10.更改整列的大小写
船体类型数据的许多问题是变型案例的结果(例如,Pilot schooner与Pilot Schooner)。消除这些问题的一种方法是使所有术语都小写。我们现在就这样做。
单击VESSEL TYPE旁边的向下箭头。从下拉菜单中,单击“ 编辑单元格”,然后单击“ 常用变换”。最后,选择To lowercase。瞧!所有船只类型现在都是小写的。
11.摆脱额外的空白
数据的一个常见问题是值之前和之后的额外空格。使用OpenRefine很容易摆脱它们。在Year Built列上,单击向下箭头,然后单击Edit cells,然后单击Common transforms。最后,单击修剪前导和尾随空格。好多了!
12.拆分多值列
我们的几个列包含位置,格式为City,State。但是,让我们说我们希望各州出现在他们自己的专栏中。使用OpenRefine很容易。
滚动到“ 出发点”列。单击向下箭头,然后单击编辑列,最后单击拆分多值单元格。弹出窗口询问当前分隔值的分隔符。输入逗号和空格,因为它们是位于城市和州之间的两个(分隔)字符。然后单击确定。
你现在有两列!您可以通过点击向下箭头将其重命名,然后编辑栏,然后重命名。
13.撤消操作
如果你在OpenRefine中犯了错误,不用担心!撤消很容易。只需单击屏幕左侧的“ 撤消/重做”链接即可。然后单击列表中的倒数第二步。你的最后一次行动将被撤消。如果您改变主意重做它,只需单击最后一步即可。
14.为选定数据添加字符
假设我们想要将前缀SS添加到具有船型帆船的任何船的名称。我们首先使用我们的容器类型facet来选择在VESSEL TYPE列中使用术语schooner的所有行。
选择所有schooners后,前往SHIP’S NAME列。单击向下箭头,然后选择编辑单元格,然后选择转换…
随后的弹出框要求您使用称为Google精炼表达式语言(GREL)的语言来转换数据。你不必真正了解GREL; 你只需要能够查找你想要写的表达式的模式。
如果要在OpenRefine中为某些数据添加前缀,则模式如下所示:
“前缀” +值
所以在空白文本框中输入
“SS”+值
您将在右下方的列中看到数据的外观预览。如果您满意,请按“ 确定”。
现在每个大篷车的标题都以“SS”开头!
15.导出数据
一旦清理了数据,您就会想要将其从OpenRefine中删除。为此,请单击右上角的“ 导出”按钮。然后单击逗号分隔值。您清理后的电子表格应该开始下载。您可以在项目的任何阶段根据需要多次下载数据。
要关闭OpenRefine,只需关闭浏览器中的窗口或选项卡即可。
数据清洗,这只是一个开始!
这些是您希望在OpenRefine中执行的一些最常见的任务,但OpenRefine也可以处理更复杂的任务。要了解其中一些任务,请参阅OpenRefine Resources页面上的资源。