在Python中使用正则表达式提取字符串的一部分

2024-06-26 14:33:28 发布

您现在位置:Python中文网/ 问答频道 /正文

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

我想从“hotVideohot0501007107FilmVidéoClub”这样的字符串中提取部分hotVideo

因此,我使用如下正则表达式编写了此指令: facturation['annotation']=facturation['annotation'].str.findall('([A-Z0-9]{3}\d+)').apply(''.join)

它正确地提取所有内容,除了有时我有这样的字符串:“ctvcanalvodctv200052670ctv02000052670”,它返回ctv00200052670ctv02000052670,但只希望第一次出现:Like this

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


Tags: 数据项目字符串框架指令column科学annotation
2条回答

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

谢谢所有帮助我的人:)我找到了答案:

facturation['annotation'] = facturation['annotation'].str.findall('([A-Z0-9]{3}\d+)').apply(''.join)

facturation['annotation'] = facturation['annotation'].str.extract('(.{0,13})')

相关问题 更多 >