Прошу прощения, если это похоже на дубликат сообщения, но я потратил 2 часа на поиск в stackoverflow и не нашел решения.Проблемы с файлами csv UFT-8, невозможно создать pandas df
Я загружаю файл csv в pandas и использую несколько столбцов для моего фреймворка. Проблема в том, что один из столбцов имеет символ степени в имени °.
Если я вручную удаляю o из csv, я могу загрузить в pandas без проблем. Тем не менее, у меня будет сотня этих файлов, так что ручное удаление не похоже на забаву.
Это ошибка я получаю:
"UnicodeDecodeError: кодек 'UTF-8' не может декодировать байт 0xb0 в положении 6: недопустимый начальный байт"
# coding: utf-8
import googlemaps
import folium
import pandas as pd
import re
df = pd.read_csv('{}{}{}'.format(path, filename, '.csv', encoding='utf-8',errors="ignore"))
.rename(columns={'GPS_x[°]': 'lng', 'GPS_y[°]': 'lat',
'ELEVATION_FT[Ft]': 'ele_ft'})
Я попытался кодирования это как latin1/iso-8859-1 без успеха. Я использую Pycharm в качестве моей IDE, а кодировка по умолчанию - UTF-8.
Я также попытался открыть файл csv в блокноте ++ и кодировать его как UTP-8 и сохранить новый файл, все равно получить ту же ошибку. Я не уверен, что делать
EDIT 1: Traceback (самый последний вызов последнего):
File "myfile.py", line 18, in <module>
df = pd.read_csv('{}{}{}'.format(path, filename, '.csv', errors="ignore")).rename(columns={'GPS_x[°]': 'lng', 'GPS_y[°]': 'lat', 'ELEVATION_FT[Ft]': 'ele_ft'})
File "C:\Users\name\AppData\Local\Continuum\Anaconda3\lib\site-packages\pandas\io\parsers.py", line 645, in parser_f
return _read(filepath_or_buffer, kwds)
File "C:\Users\name\AppData\Local\Continuum\Anaconda3\lib\site-packages\pandas\io\parsers.py", line 388, in _read
parser = TextFileReader(filepath_or_buffer, **kwds)
File "C:\Users\name\AppData\Local\Continuum\Anaconda3\lib\site-packages\pandas\io\parsers.py", line 729, in __init__
self._make_engine(self.engine)
File "C:\Users\name\AppData\Local\Continuum\Anaconda3\lib\site-packages\pandas\io\parsers.py", line 922, in _make_engine
self._engine = CParserWrapper(self.f, **self.options)
File "C:\Users\name\AppData\Local\Continuum\Anaconda3\lib\site-packages\pandas\io\parsers.py", line 1389, in __init__
self._reader = _parser.TextReader(src, **kwds)
File "pandas\parser.pyx", line 535, in pandas.parser.TextReader.__cinit__ (pandas\parser.c:6077)
File "pandas\parser.pyx", line 738, in pandas.parser.TextReader._get_header (pandas\parser.c:9215)
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xb0 in position 11: invalid start byte
Try кодирования = «cp1252» – Vaishali
Спасибо за помощь Вайшали. К сожалению, cp1252 не работает. – Tappy