在熊猫中读取csv时如何使用适当的编码?

时间:2018-09-18 03:32:01

标签: pandas utf-8

我正在尝试从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”,但错误消息是相同的。

关于如何通过熊猫更好地加载这些文件的任何想法? 非常感谢!

ps:包含62个csv文件的副本可以在这里找到:FDIC Website

1 个答案:

答案 0 :(得分:1)

首先查看文件的编码格式。

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')