替换字符串中的不间断空格 \xa0

Replace non breaking spaces \xa0 inside string


我正在 Python 中编写脚本以将 Excel 在线数据传输到 GCP,我想替换 \xa0 来自 DataFrame 列内的字符串,例如 '\xa0shopName' , '\xa0Street Adress', '\xa0'.
我试过 df = df.replace(u'\xa0', u''),但它只是替换了 '\xa0',字符串与 \xa0 和单词保持不变。也许正则表达式 df = re.sub('#regular expression', '', df) 会有所帮助,但我找不到正确的正则表达式句子 :/

如果它显示在字符串的开头或结尾,您可以只使用 .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)

通过传递 regex=True 选项,您会在幕后触发 re.sub,用空字符串替换所有出现的 non-breaking 空格。