数据导入与预处理-第7章-数据清理工具OpenRefine

简介: 数据导入与预处理-第7章-数据清理工具OpenRefine


数据清理工具OpenRefine

OpenRefine简介

OpenRefine是一款免费开源、清理数据的强大工具,它可以帮助用户在使用数据之前完成清理工作,并通过浏览器运行的界面直观地展现对数据的相关操作,对于编程能力薄弱的用户而言是一个不错选择。

OpenRefine是一款由Java开发的可视化工具,用户可以在操作界面上直接对数据进行数据清理和格式转换,它支持Windows、Linux和macOS系统,并且提供英文、中文和日文等多种语言,可以在用户缺乏专业编程技术的背景下快速地清理数据。

下载与安装

下载安装包

openrefine-3.7.2.zip

解压后如下:

单击“openrefine.exe”启动OpenRefine工具,若当前计算机中没有配置Java环境,则会在默认浏览器中打开“下载适用于Windows的Java”页面,如果已经安装,会弹出如下图所示界面。

配置

为保证读者后续能顺畅且便捷地使用OpenRefine工具,在使用OpenRefine工具操作之前,需要对其进行一些基本配置:语言设定和增加内存,其中增加内存可以避免后续操作时出现因数据集庞大而无法导入的问题。

语言设定

增加内存

OpenRefine在Windows系统中默认分配1G内存空间,若处理的数据需要使用更大的内存空间,则可以通过配置文件增加OpenRefine所使用的内存空间。

通过修改openrefine.l4j.ini文件的配置项可以给OpenRefine工具增加内存空间。

若使用2GB或更高的内存,需要将当前配置的Java环境版本升级至64位版本,否则会在编辑openrefine.l4j.ini文件后无法启动OpenRefine工具

创建项目

值得一提的是,OpenRefine工具默认显示前10行数据,大家可通过单击页面上方“显示”选项后面的数字(5、10、25、50),来指定显示的行数。

操作列

常见的操作包括

收起列、

移动列和重排列、

移除该列和移除列、

重命名列

收起列

收起该列后,会出现一个空白列,单击空白列即可恢复name2列

移动列和重排列

OpenRefine工具既支持一次移动单个列,也支持一次移动多个列,以达到重排数据列的目的。 OpenRefine工具支持4种移动列的方式,分别为“列移至开始”“列移至末尾”“左移列”和“右移列”。

右移后

重排/移动列

选择重拍/移除列后如下

窗口左侧按顺序显示了所有列的标题,大家可通过拖曳列标题至相应的位置来重排列。

选择确定后,如下(如果没有出现,可能是name2列处于收起状态)

移除该列与移除列

OpenRefine工具中

移除该列是对当前指定的单个列进行移除;

移除列是对不需要的列进行批量移除。

当前项目中不存在标题为“gender”的列。

移除列

选择移除的列

点击确定,如下

当前项目中不存在标题为“name2”和“nation”的列。

重新定义列标题

如果列标题不能清晰明了地传递该列数据所代表的含义,可通过重命名列来重新定义列标题。

撤销与重做

导出数据

虽然OpenRefine项目支持移动、移除和重命名列操作,但是这些操作不会修改原始数据,之所以出现这种情况是因为OpenRefine会拷贝原始数据,若希望列操作在原始数据中生效,则需要将修改后的数据执行导出操作。

OpenRefine工具支持将数据导出为项目、 HTML表格、Excel文件、ODF电子表格等。需要说明的是,“导出项目”选项会将项目导出为openrefine.tar.gz格式的压缩包。

需要说明的是,后续章节仍会以Athletes_info项目为例演示操作步骤,为保证该项目中数据的完整性,这里将撤销对Athletes_info项目所有的操作。

进阶操作

数据排序

数据排序是一种常见的数据清理操作,它主要是按照指定方式排列数据,这样不仅可以对数据进行检查和纠错,还可以通过浏览排序后的数据查看数据的特征或趋势,从而找到解决问题的线索。

数据归类

数据归类是OpenRefine工具中常见的功能之一,它主要用于从数据中获得一个变化的子集,方便用户从多个角度查看数据,并且不会改变数据本身。OpenRefine工具支持多种归类操作,包括文本归类、数值归类、时间线归类、散点图归类以及自定义归类。

文本归类用于将特定文本值进行分类归组。打开Athletes_info项目中event列的下拉菜单,在下拉菜单中选择【归类】→【文本归类】,页面左侧会打开显示归类后结果的“归类/过滤器” 。

数值归类

自定义归类

重复检测

如果希望删除name列的重复值,那么需要先对包含重复值的数据进行排序,再删除按复数归类后值为true的结果。

OpenRefine工具中的重复检测功能只适用于文本类型的数据。

数据填充

数据填充是使用指定的字符或数字对空缺位置进行填充,其目的是保证数据的完整性。

文本过滤

文本过滤用于快速匹配某个特定的字符串。

数据转换

数据转换功能,能够根据需求将一列数据转换为指定的类型

常用转换包括移除首尾空白、收起连续空白、首字母大写、全大写、全小写、文本化等功能。

需要说明的是,在编写Python语言的表达式时,需要保证表达式中必须有return语句。

总结

本文主要介绍了数据清理工具OpenRefine的简介,安装,创建项目等基本操作,并提供了操作列和进阶操作等步骤。

相关文章
|
人工智能
【奶奶看了都会】ComfyUI+SVD制作AI视频教程,附效果演示
AI一天,人间一年。大家好啊,我是小卷,最近AI绘画又发展出一些新玩意了,小卷因为工作的关系有一个月没关注AI的发展了,都有点跟不上版本节奏了。。。
1844 2
【奶奶看了都会】ComfyUI+SVD制作AI视频教程,附效果演示
|
7月前
|
数据采集 数据可视化 物联网
数据工程师必看:10大主流数据清洗工具全方位功能对比
面对杂乱数据,高效清洗是分析关键。本文盘点10款主流工具:从企业级Informatica、Talend,到业务友好的Alteryx、Tableau Prep,技术向的Python、Nifi,再到轻量级Excel+Power Query,覆盖各类场景。帮你选对工具,提升效率,告别无效加班。
数据工程师必看:10大主流数据清洗工具全方位功能对比
|
28天前
|
人工智能 自然语言处理 监控
保姆级教程:OpenClaw阿里云/本地MacOS/Lunix/Windows部署+免费大模型API配置+集成100个精选Skills指南
OpenClaw(昵称“龙虾”)凭借灵活的Skills扩展机制,在AI与Web3圈持续升温,其核心魅力在于通过“动态工具箱”模式,让AI根据任务自动调用对应工具,既减少算力浪费,又避免运行卡顿。但截至2026年3月,ClawHub社区已收录超过1.3万个Skills,质量参差不齐,新手极易陷入“盲目安装、无用堆砌”的困境,最终让OpenClaw沦为摆设。
3132 15
|
5月前
|
机器学习/深度学习 人工智能 前端开发
终端里的 AI 编程助手:OpenCode 使用指南
OpenCode 是开源的终端 AI 编码助手,支持 Claude、GPT-4 等模型,可在命令行完成代码编写、Bug 修复、项目重构。提供原生终端界面和上下文感知能力,适合全栈开发者和终端用户使用。
44309 11
|
7月前
|
算法 安全 开发者
大模型部署指南:从个人玩转到企业级应用,这4款工具必看!
本文介绍了五款主流大语言模型部署工具,帮助用户根据需求选择合适的方案。包括适合个人使用的 Ollama 和 LM Studio、优化低配设备运行的 llama.cpp、企业级部署的 vLLM,以及 Hugging Face 推出的 TGI 框架,覆盖从本地体验到高性能服务的多种场景。
|
存储 人工智能 API
AgentScope:阿里开源多智能体低代码开发平台,支持一键导出源码、多种模型API和本地模型部署
AgentScope是阿里巴巴集团开源的多智能体开发平台,旨在帮助开发者轻松构建和部署多智能体应用。该平台提供分布式支持,内置多种模型API和本地模型部署选项,支持多模态数据处理。
10720 78
AgentScope:阿里开源多智能体低代码开发平台,支持一键导出源码、多种模型API和本地模型部署
|
10月前
|
机器学习/深度学习 人工智能 算法
人机融合智能 | “人智交互”跨学科新领域
本文围绕“以人为中心AI(HCAI)”理念,提出人-人工智能交互(人智交互)这一跨学科领域及框架。文章定义了人智交互的基本理论、关键问题与方法,并探讨其开发流程和团队协作模式,强调该领域的研究意义。文中分析了智能时代人机交互的新特征,提出“人智组队”的新型人机关系,指出智能系统可作为“辅助工具+合作队友”存在。同时,文章通过对比AI学科与人因科学的优势与不足,阐明跨学科合作的必要性,为未来人智交互研究提供方向。本章旨在为后续内容构建基于HCAI理念的研究与应用框架。
955 0
|
机器学习/深度学习 数据处理 Python
如何利用Python实现高效的数据清理与预处理
数据清理和预处理是数据科学家和分析师工作中不可或缺的一环,而Python作为一门强大的编程语言,可以使这个过程变得更加高效和便捷。本文将介绍一些常见的数据清理和预处理技术,并演示如何使用Python来实现这些技术。
|
负载均衡 算法 Java
SpringCloud之Ribbon使用
通过 Ribbon,可以非常便捷的在微服务架构中实现请求负载均衡,提升系统的高可用性和伸缩性。在实际使用中,需要根据实际场景选择合适的负载均衡策略,并对其进行适当配置,以达到更佳的负载均衡效果。
693 13