Python—匹配字段

news2024/11/16 17:49:44

1. 「概述」

在日常开发中,经常需要对数据中的某些字段进行匹配,但这些字段可能存在微小的差异。例如,同一个招聘岗位的数据中,省份字段可能有“广西”、“广西壮族自治区”和“广西省”等不同的写法。为了处理这些情况,文章介绍了一个名为FuzzyWuzzy的模糊字符串匹配工具包。

2. 「FuzzyWuzzy库介绍」

FuzzyWuzzy是一个基于Levenshtein Distance算法的模糊字符串匹配工具包。该算法计算两个序列之间的差异,即从一个字符串转换到另一个字符串所需的最少编辑操作次数。编辑操作可以是替换、插入或删除字符。编辑距离越小,两个字符串的相似度越大。

3. 「fuzz模块」

fuzz模块提供了四种匹配方法:

  • 简单匹配(Ratio)

  • 非完全匹配(Partial Ratio)

  • 忽略顺序匹配(Token Sort Ratio)

  • 去重子集匹配(Token Set Ratio)

python

from fuzzywuzzy import fuzz      # 示例代码及结果   print(fuzz.ratio("河南省", "河南省"))  # 结果: 100   print(fuzz.partial_ratio("河南省", "河南省"))  
# 结果: 100   print(fuzz.token_sort_ratio("西藏自治区", "自治区西藏")) 
 # 结果: 100   print(fuzz.token_set_ratio("西藏西藏自治区", "自治区西藏"))  # 结果: 100   

4. 「process模块」

process模块用于处理有限的备选答案,返回模糊匹配的字符串和相似度。主要方法有:

  • extract:提取多条数据

  • extractOne:提取一条数据

python

from fuzzywuzzy import process      # 示例代码及结果   choices = ["河南省", "郑州市", "湖北省", "武汉市"]   print(process.extract("郑州", choices, limit=2))  # 结果: [('郑州市', 90), ('河南省', 0)]   print(process.extractOne("郑州", choices))  # 结果: ('郑州市', 90)   

5. 「实战应用」

文章中还展示了两个实战应用的例子,分别是公司名称字段的模糊匹配和省市字段的模糊匹配。

python

# 模糊匹配函数   def fuzzy_merge(df_1, df_2, key1, key2, threshold=90, limit=2):      
 s = df_2[key2].tolist()       m = df_1[key1].apply(lambda x: process.extract(x, s, limit=limit))   
     df_1['matches'] = m
     m2 = df_1['matches'].apply(lambda x: [i[0] for i in x if i[1] >= threshold][0] if len([i[0] for i in x if i[1] >= threshold]) > 0 else '')       df_1['matches'] = m2       returndf_1 
           # 示例代码及结果   # 假设data和company是两个DataFrame,这里只是为了展示函数的使用方法   # df = fuzzy_merge(data, company, '公司名称', '公司名称', threshold=90)   # print(df)   

6. 「总结」

FuzzyWuzzy是一个强大的模糊字符串匹配工具,它可以帮助开发者轻松处理字符串匹配问题,特别是在数据清洗和预处理时。


内容没有结果和图,仅个人学习使用。

本文转自 https://mp.weixin.qq.com/s/4-kTrdIsUg2WH4wGjTlXOw,如有侵权,请联系删除。

---------------------------END---------------------------

题外话

在这里插入图片描述

感兴趣的小伙伴,赠送全套Python学习资料,包含面试题、简历资料等具体看下方。

👉CSDN大礼包🎁:全网最全《Python学习资料》免费赠送🆓!(安全链接,放心点击)

一、Python所有方向的学习路线

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照下面的知识点去找对应的学习资源,保证自己学得较为全面。

img
img

二、Python必备开发工具

工具都帮大家整理好了,安装就可直接上手!img

三、最新Python学习笔记

当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。

img

四、Python视频合集

观看全面零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

img

五、实战案例

纸上得来终觉浅,要学会跟着视频一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

img

六、面试宝典

在这里插入图片描述

在这里插入图片描述

简历模板在这里插入图片描述

👉CSDN大礼包🎁:全网最全《Python学习资料》免费赠送🆓!(安全链接,放心点击)

若有侵权,请联系删除

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/957952.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

二叉树的介绍

写在前面: 二叉树是数据结构课程中非常重要的内容,我们针对二叉树的概念、性质以及类型展开详细介绍。 一、概念 二叉树(Binary Tree)是n(n>0)个结点的有限集合,该集合或者空集&#xff0…

C语言用递归函数求解斐波那契数

int Fib(int n) {if (n 1 || n 2){return 1;}return Fib(n - 1) Fib(n - 2); }int main() {int i 0;printf("请输入需要第几个斐波那契数\n");scanf("%d", &i);int r Fib(i);printf("%d\n", r);return 0; }

JVM 对象的内存布局

对象头 Mark word 标记字段 用于存储对象自身的运行时数据,如哈希码(HashCode)、GC分代年龄、锁状态标志、线程持有的锁、偏向线程ID、偏向时间戳等 ClassPoint 类型指针 对象指向它的类型元数据的指针,Java虚拟机通过这个指针 来…

C++——shared_ptr:make_shared的用处,与shared_ptr直接构造的区别

shared_ptr shared_ptr继承自__shared_ptr,其中有两个对象,一个是指向资源的指针,一个是控制块,指向一个引用计数对象。控制块中存储了强引用和弱引用的计数,强引用Uses代表shared_ptr对象的引用计数,弱引…

excel怎么设置任意选一个单元格纵横竖横都有颜色

有时excel表格内容过多的时候,我们通过excel设置任意选一个单元格纵横,竖横背景颜色,这样会更加具有辨识度。设置方式截图如下 设置成功后,预览的效果图

常静相伴:深度解析C++中的const与static关键字

个人主页:北海 🎐CSDN新晋作者 🎉欢迎 👍点赞✍评论⭐收藏✨收录专栏:C/C🤝希望作者的文章能对你有所帮助,有不足的地方请在评论区留言指正,大家一起学习交流!&#x1f9…

kafka 命令脚本说明以及在java中使用

一、命令行使用 1.1、topic 命令 1、关于topic,这里用window 来示例 bin\windows\kafka-topics.bat2、创建 first topic,五个分区,1个副本 bin\windows\kafka-topics.bat --bootstrap-server localhost:9092 --create --partitions 5 --replication-factor 1 -…

nacos import com.alibaba.nacos.consistency.entity.ReadRequest

1. 异常情况 import com.alibaba.nacos.consistency.entity.ReadRequest; import com.alibaba.nacos.consistency.entity.Response; import com.alibaba.nacos.consistency.entity.WriteRequest; 2. 解决方法 安装插件,然后重新编译 记住选择Java8

从零做软件开发项目系列之十——项目运维

项目结项后的运维阶段是确保软件持续稳定运行、修复问题、满足用户需求的关键时期。在这个阶段,需要建立有效的维护制度,关注各种问题,并采取相应措施来保障系统的可靠性和可持续性。 1 运维团队 开展服务运维工作,首先需要组建运…

07.Knowing When to Look

目录 前言泛读摘要Introduction小结 精讲方法Encoder-Decoder框架 for Image CaptioningSpatial Attention ModelAdaptive Attention Model Implementation DetailsEncoder-CNNDecoder-RNNTraining details Related Work实验结论 前言 本课程来自深度之眼《多模态》训练营&…

【前端】Vue2 脚手架模块化开发 -快速入门

🎄欢迎来到边境矢梦的csdn博文🎄 🎄本文主要梳理Vue2 脚手架模块化开发 🎄 🌈我是边境矢梦,一个正在为秋招和算法竞赛做准备的学生🌈 🎆喜欢的朋友可以关注一下🫰&#x…

前端项目工程化之代码规范

目录 一、前言二、ESLint三、Prettier四、项目实战4.1 环境依赖版本4.2 使用pnpm4.3 git提交规范 五、资源 收集六、源码地址 一、前言 前端项目工程化之代码规范是指在前端项目中定义一套代码规范,以确保项目中的代码风格和格式一致,提高代码的可读性和…

GaussDB数据库SQL系列-行列转换

一、前言 二、简述 1、行转列概念 2、列转行概念 三、GaussDB数据库的行列转行实验示例 1、行转列示例 1)创建实验表(行存表) 2)静态行转列 3)行转列(结果值:拼接式) 4&…

文心一言 VS CHATGPT

由于近几天来,我的手机短信不断收到百度公司对于“文心一言”大模型的体验邀请(真是不胜其烦)!!所以我就抱着试试看的态度点开了文心一言的链接:文心一言 目前看来,有以下两点与chatgpt是有比较…

Plex私人影音云盘搭建教程:本地电脑使用内网穿透实现远程访问

文章目录 1.前言2. Plex网站搭建2.1 Plex下载和安装2.2 Plex网页测试2.3 cpolar的安装和注册 3. 本地网页发布3.1 Cpolar云端设置3.2 Cpolar本地设置 4. 公网访问测试5. 结语 1.前言 用手机或者平板电脑看视频,已经算是生活中稀松平常的场景了,特别是各…

《中国人工智能人才学习白皮书》发布!

Datawhale发布 2023 中国人工智能人才学习白皮书 I 导读 日前,由 Datawhale 联合上海白玉兰开源开放研究院、和鲸科技、江南大学教育信息化研究中心编写的《2023中国人工智能人才学习白皮书》(下简称“白皮书”)于8月24日正式发布。 学界大咖…

谈谈对OceanBase单机分布式一体化的思考

关于作者: 杨传辉,OceanBase CTO。2010 年作为创始成员之一加入 OceanBase 团队,主导了 OceanBase 历次架构设计和技术研发,从无到有实现 OceanBase 在蚂蚁集团全面落地。同时,他也主导了两次 OceanBase TPC-C 测试并打…

北约报告:2023-2043,下一代量子技术的发展与挑战

“当今的新技术正在以令人眼花缭乱的速度发展,我们所有人都可以在负责任且合乎道德的方式开发和部署新技术方面发挥作用。” ——这是副秘书长Mircea Geoană在2023年3月22日、在布鲁塞尔发布《北约科学技术组织2023-2043年趋势报告》时传达的信息。 Geoană先生强调…

【Python】使用python处理excel表格数据

Python有许多库可以用于处理Excel表格数据,其中最常用的是pandas和openpyxl。 pandas库 pandas库是一个非常强大的用于数据分析和操作的Python库。它支持处理各种数据类型,包括Excel表格数据。 首先需要安装pandas库,可以通过以下命令在终…

项目介绍:《Online ChatRoom》网页聊天室 — Spring Boot、MyBatis、MySQL和WebSocket的奇妙融合

在当今数字化社会,即时通讯已成为人们生活中不可或缺的一部分。为了满足这一需求,我开发了一个名为"WeTalk"的聊天室项目,该项目基于Spring Boot、MyBatis、MySQL和WebSocket技术,为用户提供了一个实时交流的平台。在本…