百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术资源 > 正文

pandas中使用excel的模糊匹配通配符,真香

off999 2025-05-24 16:03 49 浏览 0 评论

前言

在 pandas 中,实现如下的模糊匹配统计,要怎么做?

简单:

因为在 pandas 中可以把筛选和统计两种逻辑分开编写,所以代码清晰好用。 问题在于pandas 中要实现模糊匹配,只能使用正则表达式或某种具体的函数。

在 excel 中有一类可以模糊匹配的统计函数,比如 sumifs countifs 等,它们可以使用通配符实现模糊匹配统计。之前的 excel 公式:

  • 问号 ? 表示1个任意的字符,星号 * 表示任意个数(0、1、或n)的字符
  • 对比来看,这可以直接在字符串中表达出 pandas 中的 startswith , endswith , contains

这种直接在字符串中表达模糊匹配规则,真香!难道在 pandas 中无法做到?


正则表达式的特殊字符

要在字符串中表达匹配规则,用正则表达式是最好的选择。其实思路挺简单,不就是直接把表达字符串中的符合替换成正则表达式相对于的符号吗?如下:

  • 行3:正则表达式中的点 . ,表示任意一个字符
  • 行4:在表达式前后添加开始 ^ 和结束 $ 标志

问题在于,用户输入的表达字符串里面可能包含了正则表达式的其他符号:

  • 这里我希望表达的是,搜索内容中有加号 + ,但因为 加号在正则表达式中有1或多个字符的意思 ,导致结果仍然匹配成功(内容中根本没有加号)

在 python 的正则表达式库中,为此有专门的函数,可以把所有在正则表达式中有特殊意义的符号,转义成匹配内容:

  • 处理后的结果中,加号 + 前面添加了反斜杠,正则表达式中反斜杠可以把特殊含义符号转义成普通内容

正确步骤

现在我们已经把整个问题拆分成2个小问题(并有解决方法):

  1. excel 的通配符在正则表达式中的对应表达
  2. 排除正常正则表达式中的特殊符号

只要设计好这两个步骤的执行顺序,应该就可以顺利解决问题。

定义函数:

  • 函数只做一件事情,把匹配字符串转成符合要求的表达式字符串
  • 行4: 首先用 re.escape 转成普通内容,然后针对星号和问号做替换

定义一个测试函数:

  • 行3: re.match 返回有结果,就是匹配到

写一些简单的测试:

没有报错,证明没问题。

应用到 pandas 的 series.str.match 函数即可:

不过,每次都这样子调用很啰嗦。可以封装到一个函数里面:

现在可以使用:

不要忘记一键三连。你的点赞、收藏、关注,是我创作的动力。

相关推荐

wifi连接上却不能访问互联网

原因一:路由器问题,可能路由器过热或者损坏;重启一下路由器试试,或者将路由器恢复一下出厂设置,然后重新拨号上网,并根据设置向导重新设置WiFi,或者更换新路由器再进行拨号连接上网。  原因二:可能宽带...

显卡驱动在哪里打开(显卡驱动设置在哪里)
显卡驱动在哪里打开(显卡驱动设置在哪里)

1.以华硕x16、windows11、amd22.8.1为例。先进入电脑桌面,然后点击电脑开始菜单。2.找到“AMDRadeonsettings”点击展开。3.可以看到“AMDRadeonsettings”的主程序,点击打开。4.这...

2025-12-26 16:51 off999

bios启动项里找不到固态硬盘

这个是BIOS设置问题,操作步骤不正确。需要在【启动】菜单中【硬盘BBS属性】中设置。下面提供一下完整的操作步骤,请参考:1、将装有固态硬盘的电脑重启,同时按键盘F2键。2、进入BIOS界面,在标题栏...

用手机解除路由器限速(用手机解除路由器限速教程)
用手机解除路由器限速(用手机解除路由器限速教程)

1、设置wifi限速等功能时,需要打开路由器管理页面,所以先打开一个浏览器,在里面输入192.168.1.1,然后点击确定,再把路由器的密码输进去点击确定,原始账密在路由器的背面会有。2、打开wifi路由器的管理页面后,找到设备管理项点击它...

2025-12-26 15:51 off999

系统集成项目管理工程师报考

中级系统集成项目报考条件及费用如下:1、凡遵守中华人民共和国宪法和各项法律,恪守职业道德,具有一定计算机技术应用能力的人员,均可根据本人情况,报名参加相应专业类别、级别的考试。2、获准在中华人民共和国...

电脑显示内存不能为read(电脑显示内存不能为read怎样修改虚拟内存)

1内存不能为read可能是因为程序在读取数据时没有分配足够的内存空间。2解决方法可以是增加程序的内存分配,或者优化内存使用方式,例如使用缓存等技术。3此外,还可以通过检查代码逻辑是否有误,或者是...

电脑刚启动就黑屏怎么办(电脑刚开机就黑屏怎么办)
  • 电脑刚启动就黑屏怎么办(电脑刚开机就黑屏怎么办)
  • 电脑刚启动就黑屏怎么办(电脑刚开机就黑屏怎么办)
  • 电脑刚启动就黑屏怎么办(电脑刚开机就黑屏怎么办)
  • 电脑刚启动就黑屏怎么办(电脑刚开机就黑屏怎么办)
网易用户中心官网(网易用户中心官网注册账号)

要登录网易个人中心的话,首先你网易要有自己的账户。你可以搜索一下网易的官方链接,打开以后先注册,注册成功了以后你就可以进到个人中心了,上面也可以做一些设置或修改你的密码之类的。然后你就可以多看一下,看...

windows defender怎么关闭win11

1.启用或禁用WindowsDefender的实时保护可以通过设置打开或者关闭某些模块(例如实时保护)的选项。第一步,右键点击开始菜单--设置或者按住WIN+I(大写的i)快捷键...

无法识别硬盘(无法识别硬盘怎么解决)

1.有可能可以修复2.因为硬盘无法识别可能是由于硬盘本身的故障或者连接线松动等原因导致的,可以尝试更换连接线或者使用一些数据恢复软件进行修复。但是如果硬盘本身的故障比较严重,可能需要专业的数据恢复...

win10固态硬盘如何分区(win10固态硬盘分区多大合适)

可以按照以下步骤进行分区。1.打开“此电脑”或“文件资源管理器”,右击“此电脑”,选择“管理”。2.在计算机管理窗口中,选择“磁盘管理”,找到你的固态硬盘。3.右击固态硬盘,选择“新建简单卷”。...

博图v19(博图v19安装过程中出错)

 西门子博途(TIAPortal)是用于工程设计和编程的软件平台,博途V19和V18是该平台的不同版本。它们在功能、性能和用户体验上有一定的区别。以下是一些主要区别:1.新功能和性能提升...

小米怎么关闭自动更新(如何关闭小米自动更新系统)

  方法/步骤分享:  1、首先找到自己手机上的设置选项。  2、找到设置之后我们看到下面有一个我的设备选项。  3、在我的设备下面有一个miui版本,点击这个版本号后面的箭头。  4、进入到系统更新...

隐藏的文件夹怎么才能显示出来

你可以打开我的电脑,随便找一个盘符点进去,然后点击左上角的组织选项,找到文件和文件夹选项,然后会弹出一个列表,找到选项显示所有文件和文件夹,把前面的勾打上就可以了。1.在资源管理器中,打开文件夹属性...

恢复出厂设置有什么影响吗(恢复出厂设置对有影响吗)

基本上没什么危害。恢复出厂设置是一次大容量的数据读写,清除,存储过程,相对一般日常使用来说,只是会对电脑的整个硬件硬盘形成一次重大磨损过程,大容量的数据读写,清除,存储,会加快硬盘的老化,但对电脑本身...

取消回复欢迎 发表评论: