Итак, у меня была таблица Excel, которую я сохранил как файл .csv, и теперь я пытаюсь использовать ее в python. У меня было несколько проблем, но я смог обойти их с помощью параметров в функции pd.read_csv ().
Теперь он печатает фрейм данных, но заголовок первого столбца имеет два тупых символа, прикрепленных к его передней части. «Имя - это то, что оно показывает. Я предполагаю, что это как-то связано с кодировкой, или мой CSV-файл плохо создан.
Это также дает мне ключевую ошибку, когда я пытаюсь установить индекс.
Код:
import pandas as pd
# Create main data frame from .csv
data_file = pd.read_csv("C://...........//8_29_2018.csv", engine='python', sep='delimiter', encoding='latin_1')
df1 = pd.DataFrame(data_file)
#df1.set_index('Request Date')
print(df1.head())
Первоначально я пытался просто путь к файлу, но я получил эту ошибку.
File "pandas\_libs\parsers.pyx", line 539, in pandas._libs.parsers.TextReader.__cinit__
File "pandas\_libs\parsers.pyx", line 767, in pandas._libs.parsers.TextReader._get_header
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xff in position 0: invalid start byte
Затем я попытался кодировать в utf-8 и получил эту ошибку
File "pandas\_libs\parsers.pyx", line 539, in pandas._libs.parsers.TextReader.__cinit__
File "pandas\_libs\parsers.pyx", line 767, in pandas._libs.parsers.TextReader._get_header
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xff in position 0: invalid start byte
Не уверен, что попробовать сейчас любая помощь будет здорово. Вот то, что печатает мой pycharm с моим кодом вверху.
и вот как выглядит мой CSV-файл при открытии в Excel
красный - это просто имена, которыми я не хочу делиться.
РЕДАКТИРОВАТЬ: Таким образом, мой обновленный код выглядит следующим образом, и я получаю ошибку ключа, когда я пытаюсь установить показанный индекс, который закомментирован. В комментариях ниже есть изображение, которое показывает CSV, открытый в блокноте.
Код:
import pandas as pd
df1 = pd.read_csv("C://Users..........//EXPORTED SPR PDM DATA//8_29_2018.csv", encoding='utf-16')
print(df1.head())
Результат:
File "pandas\_libs\parsers.pyx", line 876, in pandas._libs.parsers.TextReader.read
File "pandas\_libs\parsers.pyx", line 891, in pandas._libs.parsers.TextReader._read_low_memory
File "pandas\_libs\parsers.pyx", line 945, in pandas._libs.parsers.TextReader._read_rows
File "pandas\_libs\parsers.pyx", line 932, in pandas._libs.parsers.TextReader._tokenize_rows
File "pandas\_libs\parsers.pyx", line 2112, in pandas._libs.parsers.raise_parser_error
pandas.errors.ParserError: Error tokenizing data. C error: Expected 26 fields in line 6, saw 28