读取 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 文件,截图如下:
会发现,其实我们需要的数据是从第 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中的某些列。
其余请参考相关文档,思考一下。
实用