0

У меня есть некоторые данные с символами, отличными от ASCII. Я пытался заботиться о нем, используя следующие:Кодирование/декодирование символов, отличных от ASCII, при использовании Python Pandas

# 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 

Так что я пытаюсь использовать его, чтобы преобразовать свою панд колонку:

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

Я не могу воспроизвести вашу ошибку ... похоже, может быть, проблема в том, что ваш столбец имен был преобразован в нижний регистр? – maxymoo

+0

Я просто протестировал его с помощью разных текстовых редакторов, IDLE по умолчанию для python, похоже, не имеет проблем (даже не нужно использовать .encode или .decode), но возвышенный текст 3, кажется, постоянно дает мне проблемы, которые являются позор, так как мне очень нравится этот редактор и думал, что это будет что-то легко зафиксированное в настройке. – KubiK888

ответ

-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"))) 

;)