读取 CSV 文件可能遇到的问题

当然我们读,用到的库是 pandas
方法大致如下:

import pandas as pd

df=pd.read_csv('csv文件路径', sep=','encoding='gbk')

可能遇到的问题如下:
1、设计器中报错为:

Initializing from file failed

遇到以上报错提示,解决方法:

f = open('csv文件')
df = pd.read_csv(f,sep=',',encoding='gbk')

2、报错提示为:

UnicodeDecodeError: 'gbk' codec can't decode byte 0xb7 in position 14: incomplete multibyte sequence

遇到以上报错提示,解决方法:

df=pd.read_csv('csv文件路径', sep=',',encoding='utf-8')
	   
# 在pycharm中,我们用 encoding='gbk',是可以直接读取得到,但是设计器中需要将此改为 encoding='utf-8'

3、报错提示为:

UnicodeDecodeError: 'gbk' codec can't decode byte 0xaf in position 3: illegal multibyte sequence

是的,此处报错信息,基本和第 2 条很相似,但是此处已经将 encoding 改为 ’utf-8’了。我们可以看下需要读的 CSV 文件,截图如下:
读取 CSV 文件可能遇到的问题
会发现,其实我们需要的数据是从第 5 行开始。

于是其中的一种解决方案如下:

f = open('C:/file/dh_demo/files/dh/tb/zf/20882015460911320156_20190623_账务明细.csv')
df = pd.read_csv(f, sep=',', header=4, encoding='gbk')

可以看到这边我们加了一个 header, 加完我们发现,是可以正常去读了。如此分析得出,文件中起始几行的编码导致了错误。因而,我们可以去掉这几行,往下读。

4、引申:
CSV 文件的读取,其实大部分的方法,我们可以取参考 Excel 的读取方法。

    1、 usecols
	usecols=['业务流水号', '收入金额(+元)', '业务类型']
	# 我们也可以如同读取Excel一样,只读CSV中的某些列。

其余请参考相关文档,思考一下。