Есть ли способ удалить недопустимые символы в Excel? - PullRequest
1 голос
/ 25 октября 2019

Я хочу прочитать файл Excel с пандами на python. Мой код так прост:

import pandas as pd
data = pd.read_excel(open("excel.xlsx"),encoding='utf-8')

Но после запуска скрипта я получаю следующую ошибку:

UnicodeDecodeError: 'charmap' codec can't decode byte 0x9d in position 16: character maps to <undefined>

Похоже, что по крайней мереодин символ, который является недопустимым в моем файле Excel. Я попытался сохранить файл Excel под другим именем или и попробовал некоторые другие кодировки, которые были предложены в других потоках SO. Но ничто не решило эту проблему. Как я могу избавиться от этих символов в моем файле Excel?

Ответы [ 2 ]

2 голосов
/ 25 октября 2019

Xlsx файл является двоичным файлом, в то время как open попытается прочитать его как текстовый файл и передать его в read_excel, следовательно, он не сможет его прочитать. Вместо этого используйте

data = pd.read_excel("excel.xlsx", encoding='utf-8')

Если вы хотите использовать open (что в этом случае не требуется, поскольку pandas автоматически открывает файл для вас), вы можете сделать

data = pd.read_excel(open("excel.xlsx", mode='rb'))
1 голос
/ 25 октября 2019

Ori6151 корректно с кодировкой "utf-8", также хорошо работает "utf-8-sig".

Мне пришлось использовать кодировку "cp850", которая остановила эту ошибку для меня,Конечно, это зависит от того, что персонаж не может декодировать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...