Pandas DataFrame替换'??'触发re.error报错的解决求助
问题解决:DataFrame替换'??'时正则报错
错误原因
当设置regex=True时,'??'会被当作正则表达式解析。在正则语法中,?是量词,表示匹配前面的元素0次或1次,而??属于重复量词的写法,但这里前面没有可匹配的元素,因此触发re.error错误。
解决方案
方法1:关闭正则匹配(推荐)
如果你只是要替换固定的'??'字符串,不需要正则的匹配功能,直接设置regex=False即可:
df = df.replace('??', 'O', regex=False)
方法2:转义正则特殊字符
如果必须使用正则模式(比如需要批量匹配类似模式),需要对?进行转义(在正则中\?表示匹配普通的问号字符):
df = df.replace(r'\?\?', 'O', regex=True)
内容的提问来源于stack exchange,提问作者Joseph Darton
相关产品推荐
相关产品推荐

