我有一个 Dataframe ,其中的列如下所示:
0 EIAB^EIAB^6
1 8W^W844^A
2 8W^W844^A
3 8W^W858^A
4 8W^W844^A
...
826136 EIAB^EIAB^6
826137 SICU^6124^A
826138 SICU^6124^A
826139 SICU^6128^A
826140 SICU^6128^A
我只想保留第二个插入符号之前的所有内容,例如:8W^W844
,在Python中我应该用什么正则表达式,类似的,PACU^SPAC^06
应该是PACU^SPAC
,然后把它应用到整列。
我尝试了r'[\\^].+$'
,因为我认为它会采取最后一个脱字符和一切之后,但它没有工作。
2条答案
按热度按时间ulydmbyx1#
您可以对字符组求反以查找除
^
之外的所有内容,并将其放入匹配组中。您不需要对字符组中的^
进行转义,但需要对字符组外的^
进行转义。这在panda Dataframe 中非常有用,假设你想在一个列上做这个,你可以提取你想要的字符串
最初,我使用
replace
,但评论中建议的extract
解决方案在1/4的时间内执行。输出
y53ybaqx2#
我不认为这里真的需要regex,只需要将字符串分割到第二个插入符号的位置:
str.find
接受从何处开始搜索的第二个参数,将其放在第一个插入符号的位置之后。