我是一名从事数据科学项目的学生,我需要从我的数据框架的一列中提取一部分。 数据帧如下所示: column
我想从“hotVideohot0501007107FilmVidéoClub”这样的字符串中提取部分hotVideo
因此,我使用如下正则表达式编写了此指令:
facturation['annotation']=facturation['annotation'].str.findall('([A-Z0-9]{3}\d+)').apply(''.join)
它正确地提取所有内容,除了有时我有这样的字符串:“ctvcanalvodctv200052670ctv02000052670”,它返回ctv00200052670ctv02000052670,但只希望第一次出现:Like this
有人能帮我解决这个问题吗:)
我认为问题在于你的apply+join和findall方法,因为你在数据中匹配了2次这种模式,然后你加入了它findall为您返回列表。从列表中,您只需要第一项,而不是全部
谢谢所有帮助我的人:)我找到了答案:
facturation['annotation'] = facturation['annotation'].str.findall('([A-Z0-9]{3}\d+)').apply(''.join)
facturation['annotation'] = facturation['annotation'].str.extract('(.{0,13})')
相关问题 更多 >
编程相关推荐