Не удается прочитать файл tsv в pandas. Выдает ошибку UnicodeDecodeError: кодек ‘utf-8’ не может декодировать байт 0xa5 в позиции 113: недопустимый начальный байт

#python #pandas

#python #pandas

Вопрос:

Я пытаюсь прочитать файл tsv (один из многих), но он выдает мне следующую ошибку.

UnicodeDecodeError: 'utf-8' codec can't decode byte 0xa5 in position 113: invalid start byte

До этого я читал похожие другие файлы, используя тот же код.

df = pd.read_csv(fname,sep='t',error_bad_lines=False)

Но для этого конкретного случая я получаю сообщение об ошибке.

Как я могу прочитать этот файл? Надеюсь, без пропуска каких-либо данных.

Комментарии:

1. Это помогло бы увидеть пример ваших данных — не могли бы вы добавить некоторые примерные данные к вашему вопросу, которые повторяют вашу ошибку?

2. @bm13563, как / куда я могу загрузить файл данных?

3. @AlhpaDelta Вы могли бы просто опубликовать несколько строк данных, которые вы пытаетесь прочитать. Вы, вероятно, можете открыть его как txt, нет?

Ответ №1:

Было бы предложено проверить, какая кодировка у вас на самом деле есть. Сделайте это так:

 with open('filename.tsv) as f:  ### or whatever your etension is
   print(f)
 

из этого вы получите кодировку. Затем,

df=pd.read_csv(‘filename.tsv’, encoding=»возвращенная кодировка»)

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

Комментарии:

1. он сказал encoding = ‘cp1252’. Интересно, в чем разница, из-за которой он взрывается. и есть ли способ учитывать разные кодировки без необходимости специально проверять.