ITPub博客

首页 > 数据库 > 数据库开发技术 > 使用Python指定列提取连续6位数据的单号(下篇)

使用Python指定列提取连续6位数据的单号(下篇)

原创 数据库开发技术 作者:Python进阶者 时间:2023-10-25 09:00:00 0 删除 编辑
点击上方“Python爬虫与数据挖掘”,进行关注

回复“书籍”即可获赠Python从入门到进阶共10本电子书

今

日

鸡

汤

旦辞爷娘去,暮宿黄河边。

大家好,我是皮皮。

一、前言

前几天在Python最强王者交流群【哎呦喂  是豆子~】问了一个Python数据提取的问题,一起来看看吧。

上一篇文章大家激烈探讨,终于有了一个解决办法,不过粉丝运行后,发现了点小瑕疵,这一篇文章一起来看看吧。

要提取以“闽移需【“ 开头 + 6位连续数字 +“】”+ 4位连续数字 + 汉字“号“的数据,提取结果以“闽移需【202303】1311号”这种形式展示,这种情况汉字为什么提取不出来呀?

下面是她的代码:

import pandas as pd
import re

# 创建一个示例DataFrame
df = pd.DataFrame({'A': ['闽移需【202303】1111号“中的”闽移需【202303】1111号“提取出来', 'bjyxszd-闽移需【202303】15', '闽移需【202303】1510号']})

pattern = r'闽移需\【(\d{6})\】(\d{4})号'
result = df['A'].str.extract(pattern)

运行后得到的结果如下图所示:

二、实现过程

这里【隔壁😼山楂】指出了问题所在:在上图中,第二行跟着的是15,没有四位数字,所以提不出来。提取只会提取括号里的内容,非括号里的不会提取,只会判断。【瑜亮老师】也给了一个类似的解答,如下图所示:

现在的小问题是结果以“闽移需【202303】1311号”展示  然后这个正则是只提取了数字 然后还分成2列数据   这个有办法把“闽移需【202303】1311号”这类数据提取出来吗?

后来【瑜亮老师】继续优化了他写的正则表达式,如下图所示:

终于顺利地解决了粉丝的问题!这个问题还是有点难度的,毕竟无规则,规律十分难以寻找,匹配起来非常费劲。

三、总结

大家好,我是皮皮。这篇文章主要盘点了一个Python正则表达式数据提取的问题,文中针对该问题,给出了具体的解析和代码实现,帮助粉丝顺利解决了问题。

最后感谢粉丝【哎呦喂  是豆子~】提问,感谢【瑜亮老师】、【猫药师Kelly】、【隔壁😼山楂】、【Wayne.Wu】、【郑煜哲·Xiaopang】给出的思路和代码解析,感谢【黑科技·鼓包】、【巭孬🕷】等人参与学习交流。

【提问补充】温馨提示,大家在群里提问的时候。可以注意下面几点:如果涉及到大文件数据,可以数据脱敏后,发点demo数据来(小文件的意思),然后贴点代码(可以复制的那种),记得发报错截图(截全)。代码不多的话,直接发代码文字即可,代码超过50行这样的话,发个.py文件就行。

大家在学习过程中如果有遇到问题,欢迎随时联系我解决(我的微信:pdcfighting1),应粉丝要求,我创建了一些ChatGPT机器人交流群和高质量的Python付费学习交流群和付费接单群,欢迎大家加入我的Python学习交流群和接单群!

小伙伴们,快快用实践一下吧!如果在学习过程中,有遇到任何问题,欢迎加我好友,我拉你进Python学习交流群共同探讨学习。

------------------- End -------------------

往期精彩文章推荐:

欢迎大家点赞,留言,转发,转载,感谢大家的相伴与支持

想加入Python学习群请在后台回复【入群】

万水千山总是情,点个【在看】行不行

/今日留言主题/

随便说一两句吧~~

原文作者:Python爬虫与数据挖掘;如有侵权,请联系管理员删除。

请登录后发表评论 登录
全部评论

注册时间:2024-12-18

  • 博文量
    913
  • 访问量
    379578