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

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

数据清理工具OpenRefine


OpenRefine简介


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


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

088f1c21f2b1a548d4dfd37dd35cb971_de1a63fd22534cad9f7dca28aeccb7c9.png


下载与安装

下载安装包

openrefine-3.7.2.zip


解压后如下:


c17f4986363bdf58426c65feb6a1fcc6_7da34547827846818e3b03e8979aa53a.png

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


f4d4e1f6320ad9cb102312ae292caf98_a5fb632a5f6d4aa9b7459719491d8d15.png

配置

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


语言设定

501cd39a266cc7d32d1e713574f67a50_c2eee9634fd54ab78a6aa6d6e7a2ed6c.png


增加内存

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

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

a95bd38f9b4fd309fd112bc66cf23269_2dc8b846121c45f282e3ede7a2dddeca.png


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


创建项目



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


6c53a40a7a314f9884c50d3e8c7ef027.png

操作列

常见的操作包括

收起列、

移动列和重排列、

移除该列和移除列、

重命名列


收起列

cab7da5b26f347c482f9b18d69754c43.png


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

bf011d00d40b4991b214a133c3cebb18.png


移动列和重排列

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

1c29286caa984477802e9714cc053778.png


右移后

f58dc3aca54344de953a7a5c27c8f020.png


重排/移动列


5be3f0503efdf3d99b8cb2db85ccec6c_2bc5adf3e0354c089a3d013d6384adf1.png

选择重拍/移除列后如下

4ad29911c3d1d09d1b93abbb4f990f74_419dd2baa5b04fee984209905a8bead9.png


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


1ecb7ecfdbfbcb06e59a06bf853ac9d7_8ec717cc2dd74c9a959c0bf624e6dbf2.png


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

752d8bb27bdc9810aa1d12c65268fe55_de7763cd5e08451bb2373456281c63bb.png


移除该列与移除列

OpenRefine工具中


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

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

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

移除列

选择移除的列

点击确定,如下

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


重新定义列标题

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

0e12d1b393eee04c9b233d1c9799f239_8c4ef0025d28451f8576a3cab8faeb78.png


撤销与重做




导出数据

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


30cf76563f52b4390ccc51492064b9f7_a7e7711fa5144c93b62cb0c2c17d6d67.png


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



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


525d95200310dac7e4065c52b818173b_ebbabd2881d14b77b28d5a8ee8559ad3.png


进阶操作

数据排序

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


7cefa2866dccb59de3ffcbe29fb5c01f_0699d8b7fe69452688c01fc340d14057.png



数据归类

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


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




数值归类

9a0712498761c5d523c9950e427483ea_41ab2a3d245c4cac8266cb22dc82b1ee.png


自定义归类




重复检测

255ea4509754530a21005c7dff8fcecb_93b5e0f4a66f4d908083aa995b4cf58b.png


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



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


数据填充

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





文本过滤

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




数据转换

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


1843844f3bb99372bc914c42f721bcce_73196d6a4a1f4408b319344283f0e557.png


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







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


总结


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

相关文章
|
2月前
|
人工智能 运维 安全
阿里云新发的AgentRun 有哪些“大招”,一文详解来了
函数计算 AgentRun 是一站式 Agentic AI 基础设施平台,基于 Serverless 架构,提供毫秒弹性、安全沙箱、模型工具治理、全链路可观测等能力,助力企业实现从原型到生产的平滑演进,让 AI Agent 真正落地生产。
阿里云新发的AgentRun 有哪些“大招”,一文详解来了
|
11月前
|
数据采集 存储 数据可视化
【全览篇】解锁AllData数据中台商业版能力演示
杭州奥零数据科技有限公司成立于2023年,专注于数据中台业务,维护开源项目AllData并提供商业版解决方案。AllData提供数据集成、存储、开发、治理及BI展示等一站式服务,支持AI大模型应用,助力企业高效利用数据价值。
|
数据采集 监控 安全
智能辅助快运装车规划系统整体建设方案
本方案为一家全国性快运企业设计,针对其分拣与装车过程中的问题,提出了一套全面的智能辅助快运装车规划系统。该系统通过多源货品整合、优先级驱动的配送安排、地址信息精准转化等功能,结合先进的智能算法,实现高效的装车与配送规划,从而提升调度精度、降低物流成本、提高配送效率。系统分六个阶段逐步建设,从基础平台搭建到持续优化,确保系统的高效运行与持续改进。
448 3
|
机器学习/深度学习 自然语言处理 算法
浅谈开源和闭源的认知
浅谈开源和闭源的认知
|
SQL 自然语言处理 测试技术
NL2SQL进阶系列(4):ConvAI、DIN-SQL等16个业界开源应用实践详解[Text2SQL]
NL2SQL进阶系列(4):ConvAI、DIN-SQL等16个业界开源应用实践详解[Text2SQL]
NL2SQL进阶系列(4):ConvAI、DIN-SQL等16个业界开源应用实践详解[Text2SQL]
|
Linux 测试技术 调度
新工具开源!一款iOS自动化利器(附地址)
tidevice 是阿里的内部的一个小组用来做 iOS 自动化用的工具,通过逆向iOS通信协议,使用纯Python实现。目前淘宝和其他部分事业部已经全面使用了该技术,进行iOS应用的性能采集,UI自动化。
2906 0
新工具开源!一款iOS自动化利器(附地址)
|
机器学习/深度学习 人工智能 异构计算
【Docker 专栏】Docker 与 GPU 加速应用的结合
【5月更文挑战第9天】GPU加速技术在处理大规模数据和复杂计算时展现强大性能,尤其在AI和深度学习领域。Docker作为轻量级容器化工具,提供隔离、可移植和高效的环境。结合GPU加速,关键在于容器访问GPU设备和安装相应驱动。NVIDIA提供了支持工具,允许Docker利用GPU。应用场景包括人工智能、科学计算和视频处理。优势包括资源利用率提升和部署灵活性,但面临驱动兼容性、资源管理和监控调试的挑战。未来,随着技术发展,Docker与GPU加速在边缘计算中的应用将有广阔前景。
793 1
【Docker 专栏】Docker 与 GPU 加速应用的结合
|
负载均衡 网络协议 安全
DNS解析中的Anycast技术:原理与优势
【9月更文挑战第7天】在互联网体系中,域名系统(DNS)将域名转换为IP地址,但网络规模的扩张使DNS解析面临高效、稳定与安全挑战。Anycast技术应运而生,通过将同一IP地址分配给多个地理分布的服务器,并依据网络状况自动选择最近且负载低的服务器响应查询请求,提升了DNS解析速度与效率,实现负载均衡,缓解DDoS攻击,增强系统高可用性。此技术利用动态路由协议如BGP实现,未来在网络发展中将扮演重要角色。
1166 0
|
人工智能 数据安全/隐私保护
Sora超逼真视频引恐慌!Nature刊文警示AI视频模型,或在2024年颠覆科学和社会
【4月更文挑战第27天】OpenAI公司的新型AI工具Sora能根据文字提示生成超逼真视频,引发关注。尽管已有类似产品,如Runway的Gen-2和谷歌的Lumiere,Sora以其高质量生成效果领先。该技术的进步可能导致2024年全球政治格局的颠覆,同时带来虚假信息的挑战。OpenAI已组建“红队”评估风险,但虚假视频识别仍是难题。尽管有水印解决方案,其有效性尚不确定。Sora在教育、医疗和科研等领域有潜力,但也对创意产业构成威胁。
289 2
|
SQL 人工智能 JSON
【AI大模型应用开发】2.2 Function Calling连接外部世界 - 【实战】查询数据库
【AI大模型应用开发】2.2 Function Calling连接外部世界 - 【实战】查询数据库
537 0