替换字符串内的非断空格\xa0

3


我正在使用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) - Wiktor Stribiżew
这里的任何提示对你有用吗? - Wiktor Stribiżew
1
你的回答解决了我的问题。谢谢Wiktor!Dziękuje :D - SnakeR
3个回答

2

您可以使用

df = df.replace('\xa0', '', regex=True)

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

0

如果您的字符串开头或结尾有这个字符,您可以使用.strip来删除它。

>>> a='\xa0Street Adress'
>>> a[0]
'\xa0'
>>> a.strip()
'Street Adress'

0

我相信你遇到了一个问题,即某些内容的呈现方式与其表示方式不一致。十六进制a0对应的十进制是160,在字符串中表示为\xa0。你是否有字符串字面值\xa0,还是呈现方式显示\xa0?如果是前者,你需要转义反斜杠(这里我使用原始字符串):

df.replace(r"\xa0", "")

如果是后者,你现有的代码应该可以工作:
df.replace("\xa0", "")

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接