Кодек utf-8 'не может декодировать байт 0xb5 в позиции 0: неверный начальный байт - PullRequest
0 голосов
/ 09 марта 2019

Я пытаюсь объединить несколько файлов CSV в один с помощью этой функции:

import glob

path = r'/content/drive/My Drive/DatiAirQuality/MI_Air_Quality/data' 
all_files = glob.glob(path + "/*.csv")

li = []

for filename in all_files:
    df = pd.read_csv(filename, index_col=None, header=0)
    li.append(df)

frame = pd.concat(li, axis=0, ignore_index=True)

но я получаю эту ошибку: Кодек utf-8 не может декодировать байт 0xb5 в позиции 0: недопустимый начальный байт

и вот TraceBack:

   8 for filename in all_files:
   ---->  9     df = pd.read_csv(filename, index_col=None, 
   header=0)
   10     li.append(df)
   11 

Спасибо.

Ответы [ 3 ]

0 голосов
/ 09 марта 2019

Я бы попробовал:

pd.read_csv(filename, index_col=None, header=0, encoding='utf-8') #OR
pd.read_csv(filename, index_col=None, header=0, encoding='latin1')
0 голосов
/ 09 марта 2019

попробуйте указать это:

df = pd.read_csv(filename, index_col=None, header=0, encoding='latin-1')

кодировка latin-1 волшебна - она ​​никогда не подведет. Посмотри, что ты получишь. Если это достаточно хорошо - хорошо, вы идете.

Если нет, вам придется выяснить, какую кодировку действительно используют файлы CSV. Вы можете просто попробовать много разных кодировок, пока ответ не покажется нормальным.

0 голосов
/ 09 марта 2019

Сначала вам нужно узнать тип кодировки, который используют ваши CSV-файлы.Вы можете попробовать Chardet: универсальный детектор кодировки символов , чтобы предсказать тип кодировки, используемый в вашем CSV-файле.Chardet может быть легко установлен с помощью:

pip install chardet

После установки chardet вы можете использовать командную строку для прогнозирования кодировки вашего CSV-файла, используя:

chardet file_name.csv

Вывод будет примерно таким:

file_name.csv: UTF-8-SIG with confidence 1.0

Затем проверьте кодировку вашего CSV-файла и измените следующую строку в своем коде:

df = pd.read_csv(filename, index_col=None, header=0)

на:

df = pd.read_csv(filename, index_col=None, header=0, encoding='utf-8')

Вы можетепроверьте доступные кодировки, поддерживаемые python .Надеюсь, это решит вашу проблему.

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