首页 > 解决方案 > 在 Python Pandas 中使用正则表达式提取字符串的一部分

问题描述

我是一名从事数据​​科学项目的学生,我需要从我的数据框的一列中提取一部分。数据框如下所示: column

我想从“HOTHOTVIDEO HOT0501005107 FilmVidéoClub”之类的字符串中提取部分 HOTHOTVIDEO

所以我用这样的正则表达式写了这个指令: facturation['annotation']=facturation['annotation'].str.findall('([A-Z0-9]{3}\d+)').apply(''.join)

它提取所有正确的东西,除非有时我有这样的字符串:“CTVCANALVODCTV0200052670CTV0200052670”,它返回CTV0200052670CTV0200052670,但只想要第一次出现:像这样

有人可以帮我解决这个问题吗:)

标签: pythonregexpandasdata-scienceextract

解决方案


我认为问题出在您的apply + joinfindall方法中,因为您在数据中匹配了 2 次此模式,然后您加入了它。findall为您返回列表。从列表中,您只需要第一项,而不是全部。


推荐阅读