Unicode кодирует ошибку при записи pandas df в csv
я очистил 400 файлов excel и прочитал их в python с помощью панд и добавил все необработанные данные в один большой df.
затем, когда я пытаюсь экспортировать его в CSV:
df.to_csv("path",header=True,index=False)
Я получаю эту ошибку:
UnicodeEncodeError: 'ascii' codec can't encode character u'xc7' in position 20: ordinal not in range(128)
может ли кто-нибудь предложить способ исправить это и что это значит?
спасибо
2 ответов
вы unicode
значения в таблице данных. Файлы хранят байты, что означает all unicode
должны быть закодированы в байты, прежде чем они могут быть сохранены в файл. Вы должны указать кодировку, такую как utf-8
. Например,
df.to_csv('path', header=True, index=False, encoding='utf-8')
если вы не указываете кодировку, то кодировка, используемая df.to_csv
по умолчанию ascii
в Python2, или utf-8
в Питон3.
добавление ответа, чтобы помочь себе google позже:
один трюк, который помог мне, - это сначала кодировать проблемный ряд, а затем декодировать его обратно в utf-8. Например:
df['crumbs'] = df['crumbs'].map(lambda x: x.encode('unicode-escape').decode('utf-8'))
Это также заставит фрейм данных печатать правильно.