我正在使用Python编写脚本,将Excel在线数据传输到GCP,并希望替换DataFrame列中字符串中的\xa0,例如'\xa0店名'、'\xa0街道地址'、'\xa0'。
我已经尝试过df = df.replace(u'\xa0', u'')
,但只替换了'\xa0',包含\xa0的字符串和单词还是原样。也许正则表达式df = re.sub('#正则表达式#', '', df)
会有所帮助,但我无法找到正确的正则表达式语句 :/
您可以使用
df = df.replace('\xa0', '', regex=True)
regex=True
选项,您会在幕后触发re.sub
,用空字符串替换所有非断行空格的出现。如果您的字符串开头或结尾有这个字符,您可以使用.strip
来删除它。
>>> a='\xa0Street Adress'
>>> a[0]
'\xa0'
>>> a.strip()
'Street Adress'
我相信你遇到了一个问题,即某些内容的呈现方式与其表示方式不一致。十六进制a0对应的十进制是160,在字符串中表示为\xa0
。你是否有字符串字面值\xa0
,还是呈现方式显示了\xa0
?如果是前者,你需要转义反斜杠(这里我使用原始字符串):
df.replace(r"\xa0", "")
df.replace("\xa0", "")
df = df.replace('\xa0', '', regex=True)
。 - Wiktor Stribiżew