由于某种原因,我无法获得此简单的声明来处理ñ。它似乎可以在其他任何东西上工作,但不喜欢那个角色。有任何想法吗?
DF['NAME']=DF['NAME'].str.replace("ñ","n")
谢谢
我假设您在这里使用Python 2.x,这可能是Unicode问题。不用担心,您并不孤单-unicode通常非常困难,尤其是在Python 2中,这就是为什么它在Python 3中成为标准的原因。
如果您只关心ñ,则应使用UTF-8解码,然后仅替换一个字符。
看起来类似于以下内容:
DF['name'] = DF['name'].str.decode('utf-8').replace(u'\xf1', 'n')
举个例子:
>>> "sureño".decode("utf-8").replace(u"\xf1", "n") u'sureno'
如果您的字符串已经是Unicode,则可以(实际上必须)跳过该decode步骤:
>>> u"sureño".replace(u"\xf1", "n") u'sureno'
请注意,此处u’\xf1’将十六进制转义用于所讨论的字符。
更新资料 我在评论中被告知<>.str.replace是熊猫系列方法,但我没有意识到。对此的答案可能类似于以下内容:
DF['name'] = map(lambda x: x.decode('utf-8').replace(u'\xf1', 'n'), DF['name'].str)
或类似的东西(如果该熊猫对象是可迭代的)。
另一个更新 实际上,我刚想到您的问题可能很简单,如下所示:
DF['NAME']=DF['NAME'].str.replace(u"ñ","n")
请注意,我是如何u在字符串前面添加使其成为unicode的。