我有一些非ASCII字符的数据。我尝试使用以下方法来处理它:
# coding=utf-8
import pandas as pd
from pandas import DataFrame, Series
import sys
import re
reload(sys)
sys.setdefaultencoding('latin1')
虽然我已经确定了一些记录仍然给我编码/解码问题。我复制并粘贴了一条有问题的记录(包含记录的名称和位置列),如下所示:
'Eugène Badeau' 'E, Québec (county/comté), Quebec, Canada'
使用.decode('utf-8')添加到确切的文本提取,它解决了问题。
print 'Eugène Badeau E, Québec (county/comté), Quebec, Canada'.decode('utf-8')
output: Eugène Badeau E, Québec (county/comté), Quebec, Canada
所以我尝试用它来转换我的pandas列:
df.name = df.name.str.encode('utf-8')
位置似乎没问题,但名称仍然错误:
print df.location[735]
print df.name[735]
output:
E, Québec (county/comté), Quebec, Canada
eugã¨ne badeau
答案 0 :(得分:-1)
您可以与unidecode lib结合使用:
from unidecode import unidecode
df['name']=df['name'].apply( lambda x: unidecode(unicode(x, encoding = "utf-8")))
df['location']=df['location'].apply( lambda x: unidecode(unicode(x, encoding = "utf-8")))
)