2015-07-30 4 views
0

У меня есть dataframe pandas (python 2.7), содержащий u '\ u2019', который не позволяет мне извлекать как csv мой результат.pandas dataframe и u ' u2019'

UnicodeEncodeError: 'ascii' codec can't encode character u'\u2019' in position 180: ordinal not in range(128) 

Есть ли способ запросить данные и подструктуру этих символов другим?

+0

См http://stackoverflow.com/questions/3224268/python-unicode-encode-error и карта правильный столбец с такой кодировкой function – jarandaf

+0

AttributeError: объект DataFrame не имеет атрибута 'encode' –

+0

См. мой ответ (более простое решение) – jarandaf

ответ

1

Попробуйте использовать другую кодировку при сохранении в файл (по умолчанию в панд для Python 2.x является ASCII, поэтому вы получите сообщение об ошибке, так как он не может обрабатывать символы Юникода):

df.to_csv(path, encoding='utf-8') 
+0

Я пробовал, но он не работает. Я получаю: UnicodeDecodeError: кодек «utf8» не может декодировать байт 0xa0 в позиции 131152: недопустимый стартовый байт –

+0

Не могли бы вы как-нибудь предоставить нам данные dataframe? ясно, что в вашем наборе данных есть странные символы, из-за которых запись в файл не выполняется. – jarandaf

+0

Это конфиденциальные данные, которыми я не могу поделиться. –

0

I не удалось экспортировать весь файл. Тем не менее, мне удалось идентичностью строку с символом вызывает проблемы и устранить ее

faulty_rows = [] 
for i in range(len(outcome)): 
    try: 
     test = outcome.iloc[i] 
     test.to_csv("/Users/john/test/test.csv") 
    except: 
     pass 
     faulty_rows.append(i) 
     print i 


tocsv = tocsv.drop(outcome.index[[indexes]])  

tocsv.to_csv("/Users/john/test/test.csv")