我正在对熊猫数据框进行消毒,并且遇到其中带有u
且带有反斜杠的unicode字符串,而不是我需要替换的字符串。
u'\u2014'.replace('\u','')
Result: u'\u2014'
我尝试将其编码为utf-8
,然后将其解码,但这没有用,我觉得必须有一种更简单的方法来解决这个问题。
merged['Rank World Bank'] = merged['Rank World Bank'].astype(str)
错误
UnicodeEncodeError: 'ascii' codec can't encode character u'\u2014' in position 0: ordinal not in range(128)
答案 0 :(得分:3)
u'\u2014'
实际上是-
。这不是数字。这是一个utf-8
字符。尝试使用print关键字进行打印。你会知道的
这是ipython中的输出:
In [4]: print("val = ", u'\u2014')
val = —
根据您的评论,这是您在做什么错 “-”与“ EM Dash” Unicode字符(u'\ u2014')不同
因此,您应该执行以下操作
print(u'\u2014'.replace("\u2014",""))
那将起作用
编辑: 由于您使用的是python 2.x,因此必须使用utf-8对其进行编码,如下所示
u'\u2014'.encode('utf-8').decode('utf-8').replace("-","")
答案 1 :(得分:0)
是的,因为它将'2014'后跟'\ u'作为Unicode字符串而不是字符串文字。
可以帮助解决的问题:
希望这会有所帮助。