在替换之间的字符串之间存在一些技巧,但是我认为我的正则表达式有问题,或者我应该使用其他方法。
我需要在Name
列中替换单词(在这种情况下为is
,但不一定总是is
,有时是不同的单词)替换为is not
。
这个特定的世界在直接以'h'结尾的数字之间。
我的df:
df=pd.DataFrame({'Name':['Adam is 23.2h is 223h mike is 223h',
'Katie is 13.2h is 22h mike is 223h','Ilam is 2h is 223h mike is 223h',
'Katie','Brody','Brody like mike'],
'B':[20,20,21,21,22,21]})
B Name
0 20 Adam is 23.2h is 223h mike is 223h
1 20 Katie is 13.2h is 22h mike is 223h
2 21 Ilam is 2h is 223h mike is 223h
3 21 Katie
4 22 Brody
5 21 Brody like mike
预期输出:
B Name
0 20 Adam is 23.2h is not 223h mike is 223h
1 20 Katie is 13.2h is not 22h mike is 223h
2 21 Ilam is 2h is not 223h mike is 223h
3 21 Katie
4 22 Brody
5 21 Brody like mike
代码:
df.Name=df.Name.replace({'([0-9]{1,8}.[0-9]{1,4}h|[0-9]{1,8}h)(.*?)([0-9]{1,8}.[0-9]{1,4}h|[0-9]{1,8}h)':'is not'},regex=True)
答案 0 :(得分:1)
要使用匹配组,请写 AUTH_USER_MODEL = 'appname.CustomUser'
。而且,看来,您可以使用更简单的正则表达式
:r'\1 is not \3'