pandas中使用excel的模糊匹配通配符,真香
前言
在pandas中,实现如下的模糊匹配统计,要怎么做?
简单:
因为在pandas中可以把筛选和统计两种逻辑分开编写,所以代码清晰好用。问题在于pandas中要实现模糊匹配,只能使用正则表达式或某种具体的函数。
在excel中有一类可以模糊匹配的统计函数,比如sumifs、countifs等,它们可以使用通配符实现模糊匹配统计。之前的excel公式:
问号?表示1个任意的字符,星号表示任意个数(0、1、或n)的字符对比来看,这可以直接在字符串中表达出pandas中的startswith,endswith,contains
这种直接在字符串中表达模糊匹配规则,真香!难道在pandas中无法做到?
正则表达式的特殊字符
要在字符串中表达匹配规则,用正则表达式是最好的选择。其实思路挺简单,不就是直接把表达字符串中的符合替换成正则表达式相对于的符号吗?如下:
行3:正则表达式中的点。,表示任意一个字符行4:在表达式前后添加开始和结束标志
问题在于,用户输入的表达字符串里面可能包含了正则表达式的其他符号:
这里我希望表达的是,搜索内容中有加号,但因为加号在正则表达式中有1或多个字符的意思,导致结果仍然匹配成功(内容中根本没有加号)
在python的正则表达式库中,为此有专门的函数,可以把所有在正则表达式中有特殊意义的符号,转义成匹配内容:
处理后的结果中,加号前面添加了反斜杠,正则表达式中反斜杠可以把特殊含义符号转义成普通内容正确步骤
现在我们已经把整个问题拆分成2个小问题(并有解决方法):excel的通配符在正则表达式中的对应表达排除正常正则表达式中的特殊符号
只要设计好这两个步骤的执行顺序,应该就可以顺利解决问题。
定义函数:
函数只做一件事情,把匹配字符串转成符合要求的表达式字符串行4:首先用re。escape转成普通内容,然后针对星号和问号做替换
定义一个测试函数:
行3:re。match返回有结果,就是匹配到
写一些简单的测试:
没有报错,证明没问题。
应用到pandas的series。str。match函数即可:
不过,每次都这样子调用很啰嗦。可以封装到一个函数里面:
现在可以使用:
不要忘记一键三连。你的点赞、收藏、关注,是我创作的动力。
漠河游玩攻略3日游怎么玩?有哪些注意事项?在祖国版图的最北端,有一个地方,每年的冰雪期长达半年之久,2023年春节更是刷新了最低温度,达到53,这里的冷饮都是露天卖,这里泼水就成冰,马拉爬犁就是当地特有的交通方式,这里还有
花生配齐风险管理工具见成效来源经济日报1月12日,花生期货及期权正式引入境外交易者。记者从郑商所了解到,截至1月底,已有来自新加坡印度尼西亚等国家的26家境外客户参与花生期货及期权交易。整体看,境外交易者参
自制椒盐,只加花椒食盐还不够香,教你个配方,炒菜当蘸料都好吃快乐,在于你怎样把握?每个人都有把快乐的钥匙,但我们却常在不知不觉中把它交给别人掌管。一个成熟的人会握住自己快乐的钥匙,他不期盼别人使他快乐,反而能够将快乐和幸福带给别人。我媳妇最
鸡蛋别再用水煮了,保姆教你新方法,只需1分钟,鸡蛋鲜嫩不粘壳首先我们可以观察到鸡蛋的外表是特别脏的,首先我们要将鸡蛋清洗干净,准备一大碗水水,里面加入适量的食用盐。食用盐有效的可以去除鸡蛋表面的一些脏东西,而且还可以起到杀菌的一个作用。我们
买菠菜,要分清圆叶和尖叶,很多人不懂,难怪发涩不好吃买菠菜,要分清圆叶和尖叶,很多人不懂,难怪发涩不好吃。今天又到了和大家分享美食的时刻了,你准备好了吗?图片来源于摄图网菠菜是春天里最常见的绿叶蔬菜,要说春天里的第一鲜是啥,肯定是菠
头抽圆葱焗虾五谷粗粮花胶红腰豆炒玉米粒头条创作挑战赛头抽圆葱焗虾食材配料大虾独头蒜香菜梗葱白丝红椒丝盐鸡粉味粉胡椒粉香油生粉糖头抽汁制作步骤虾一开为二后清洗干净吸干水分,盐鸡粉糖香油生粉混合均匀涂抹在虾上。蒜拍扁,葱切
拜耳预计今年推出矮株玉米试验品种前不久,世界农业领域著名创新公司德国拜耳公司的作物科学公司数字生态系统副总裁KellyGillespie,在伊利诺伊州泽西维尔讲述了在田间种植矮植株玉米的好处和他们公司在矮作物玉米
农发行宁县支行8300万元贷款助力打造旅游样板村甘肃经济日报宁县讯(新甘肃甘肃经济日报通讯员王蓉赟李昊天)近期,农发行宁县支行获批农村土地流转和土地规模经营贷款8300万元,并实现首笔投放5212万元,用于支持毛寺村乡村旅游样板
花开正艳!莫负梅好时光O枝横碧玉天然瘦,蕊恋黄金分外香新年伊始萧山区盆景园和南江公园内的蜡梅花竞相盛放密密匝匝的花朵淡雅飘香妆点着冬之序章蜡梅不是梅?蜡梅,为百花之先,迎霜傲雪,岁首冲寒而开,拥有独特的
组图湖南常宁雨后樱花别有春意常宁市罗桥镇庙山村樱花园的早樱在春雨中绽放,别有韵味,吸引游客前来观赏游玩。游客在常宁市罗桥镇庙山村樱花园观赏拍摄樱花。游客在常宁市罗桥镇庙山村樱花园赏樱游玩。雨中樱花。红网时刻通
曾经横扫天下的秦军,为何不复当年英勇?秦朝作为我国历史上,第一个大统一的王朝,仅存在了短短十五年就灭亡了。不得不说,很令人费解。都说秦二世而亡,是亡于暴政。但是我认为,不只是这一个原因。虽说第一个掀起的大泽乡起义,是在