UnicodeDecodeError: кодек «utf-8» не может декодировать байт 0xa0 в позиции 8 - PullRequest
0 голосов
/ 01 апреля 2019

Я пытаюсь прочитать CSV, используя pd.read_csv, но получаю ошибку:

UnicodeDecodeError Traceback (последний вызов был последним) pandas_libs \ parsers.pyx в pandas._libs.parsers.TextReader._convert_tokens ()

pandas_libs \ parsers.pyx в pandas._libs.parsers.TextReader._convert_with_dtype ()

pandas_libs \ parsers.pyx в pandas._libs.pconsers.ering)

pandas_libs \ parsers.pyx в pandas._libs.parsers._string_box_utf8 ()

UnicodeDecodeError: кодек «utf-8» не может декодировать байт 0xa0 в позиции 8: недопустимоначальный байт

Во время обработки вышеуказанного исключения произошло другое исключение:

UnicodeDecodeError
Трассировка (последний последний вызов) ipython-input-84-c0272ccf19e6 в модуле

Пример моих данных:

Time,Type,Instrument,Product,Qty.,Avg. price,Status
3/27/2019 13:46,BUY,MFSL,MIS,1600,115.25,COMPLETE
3/27/2019 13:46,BUY,MFSL,MIS,500,115.3,COMPLETE

Я уже пытался проверить, есть ли недопустимый символ (с помощью Notepad ++).«Показать все символы»

Я не смог найти никакой разницы при сравнении этого файла с похожим файлом, который мог быть загружен.Просто нужна помощь Устранение неполадок выше, если кто-то может направить меня в правильном направлении.

1 Ответ

1 голос
/ 01 апреля 2019

Данные, которые вы разместили, работают нормально для меня, но они удалены на несколько градусов от вашего источника.Указание кодировки при открытии файла может решить проблему.Вы можете сделать это несколькими способами: использовать пакет кодеков, чтобы открыть файл и разрешить ему определять кодировку, или указать кодировку в csv_read ()

    import codecs

doc = codecs.open('document','rU','UTF-16') #open for reading with "universal" type set

df = pandas.read_csv(doc, sep=',')

Возможно, вы также захотите очистить имена столбцов., так как пробелы и десятичные дроби могут вызвать проблемы в ссылках.

df.columns = df.columns.str.strip().str.lower().str.replace(' ', '_').str.replace('(', '').str.replace(')', '').str.replace('.', '')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...