python - 在 Python Pandas 中使用正则表达式提取字符串的一部分
问题描述
我是一名从事数据科学项目的学生,我需要从我的数据框的一列中提取一部分。数据框如下所示: column。
我想从“HOTHOTVIDEO HOT0501005107 FilmVidéoClub”之类的字符串中提取部分 HOTHOTVIDEO
所以我用这样的正则表达式写了这个指令:
facturation['annotation']=facturation['annotation'].str.findall('([A-Z0-9]{3}\d+)').apply(''.join)
它提取所有正确的东西,除非有时我有这样的字符串:“CTVCANALVODCTV0200052670CTV0200052670”,它返回CTV0200052670CTV0200052670,但只想要第一次出现:像这样
有人可以帮我解决这个问题吗:)
解决方案
我认为问题出在您的apply + join和findall方法中,因为您在数据中匹配了 2 次此模式,然后您加入了它。findall为您返回列表。从列表中,您只需要第一项,而不是全部。
推荐阅读
- html - CSS fontAwesome 图标不居中
- github-actions - Github 操作交付机器人
- sql-server - 我如何具体知道我的包中的任务何时在 SSIS 中成功运行,以及如何在 SQL 表的日志输入板中显示它
- css - Angular中具有特定名称的复选框的CSS样式
- javascript - 使用 window.scrollTop 在 div 上添加动画滚动
- python - 使用 Python 从 USB RFID 阅读器读取数据
- angular - 如何在 Angular 项目中包含 Angular Web 组件
- google-chrome - 为什么 Chrome 开发工具显示 200 状态码而不是 304
- firebase - 允许其他特定域写入我们的 Callable Function
- javascript - 动态暂停执行用户提交的 Javascript 代码