繁体   English   中英

Python Pandas取代特殊字符

[英]Python Pandas Replace Special Character

出于某种原因,我无法通过这个简单的陈述来研究ñ 它似乎可以解决任何问题,但不喜欢这个角色。 有任何想法吗?

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)

如果那个pandas对象是可迭代的,那么沿着那些行。

另一个更新

实际上,我发现您的问题可能与以下内容一样简单:

DF['NAME']=DF['NAME'].str.replace(u"ñ","n")

请注意我是如何在字符串前面添加u以使其成为unicode的。

您可以使用具有特殊字符的替换功能,以下列方式替换为您选择的其他值。

如果您的数据帧是df,则必须在所有字符串列中执行此操作。 在我的情况下,我正在做“\\ n”

df= df.applymap(lambda x: x.replace("\n"," "))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM