Как использовать соответствующую кодировку при чтении CSV в Pandas? - PullRequest
0 голосов
/ 18 сентября 2018

Я пытаюсь загрузить наборы данных из FDIC. Каждый квартал FDIC выпускает ZIP-файл, содержащий около 62 CSV-файлов с именами, подобными следующим:

All_Reports_20080331_Assets and Liabilities.cvs,
All_Reports_20080331_Bank Assets Sold and Securitized.csv, 
etc

Я скачал все файлы в каталоге, как показано ниже:

C:\projects\FDIC\All_Reports_20080331

Как только появилось много zip-файлов из разных кварталов, я начинаю готовить структуру для цикла, который будет проходить по многим путям (каждый представляет четверть с 62 CSV-файлами внутри). Однако, прежде чем попасть в цикл, загрузка не работает из-за некоторой ошибки utf_8.

import pandas as pd
path = r"C:\projects\FDIC\All_Reports_20080331"
file = r"\All_Reports_20080331_Assets and Liabilities.csv"
df_assets_&_liab = pd.read_csv(path+file)

выдает мне следующую ошибку:

'utf-8' codec can't decode byte 0xfc in position 5: invalid start byte

Я пытался использовать параметр в pandas.read_csv для "utf_8", но сообщение об ошибке то же самое.

Есть идеи, как лучше загрузить эти файлы через panda? Большое спасибо!

ps: файл с 62 файлами CSV можно найти здесь: Веб-сайт FDIC

1 Ответ

0 голосов
/ 18 сентября 2018

Сначала посмотрите на формат кодировки файла.

import chardet
with open(path+file,"rb") as f:
    data = f.read()
    print(chardet.detect(data))

{'encoding': 'ISO-8859-1', 'confidence': 0.73, 'language': ''}

Тогда

df_assets_&_liab = pd.read_csv(path+file,encoding='ISO-8859-1')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...