Python-pandas库 读取Excel文件数据的常见错误集合

问题1
Error tokenizing data. C error: Buffer overflow caught - possible malformed input file.

解决方案
这一般是缓冲区溢出错误,造成这种错误的原因是.csv文件中每行使用了 \r ,也就是回车符。
解决方案就是给 read_csv 添加参数 lineterminator=”\n” , 指定用“\n” 作为换行符。

df = pd.read_excel(r'test.csv',lineterminator="\n")

问题2
“pandas.parser.CParserError: Error tokenizing data. C error: Expected 2 fields in line 3, s”

解决方案
加入参数error_bad_lines=False

df = pd.read_excel(r'test.csv',error_bad_lines=False)

问题3
‘utf-8’ codec can’t decode byte 0xd0 in position 0: invalid continuation byte

解决方案
使用国标码编码 encoding = ‘gb2312’

df = pd.read_excel(r'test.csv',encoding = 'gb2312')

如果依旧报错或者’gb2312’报错,可以选择编码范围更广的‘gb18030’

encoding='gb18030'

如果还不能解决,说明文中出现了连‘gb18030’也无法编码的字符,可以使用‘ignore’属性忽略非法字符,path为文件路径。

df = open(path, encoding='gb18030', errors='ignore')

或者

df=open(path).read().decode(‘gb18030’,’ignore’)

如果errors报错了(parser_f() got an unexpected keyword argument ‘errors’),请升级你的pandas版本。

问题4
index 1 is out of bounds for axis 1 with size 1

解决方案
数据中有空值,请检查文件里的内容。把无关数据删除,空值补上数据。

问题5
Error: ‘gbk’ codec can’t decode byte 0x80 in position 205: illegal multibyte sequence"

解决方案
后面加上参数:‘rb’

df = pd.read_excel(r'test.csv','rb')

问题6
读取数据时总是少一行数据。

解决方案
加上参数header = 0或者header = None。

df = pd.read_excel(r'test.csv',header = None)
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值