报错:pandas.errors.ParserError: Error tokenizing data. C error: Expected 1 fields in line 7, saw 2

Pandas 合并 CSV 文件时报错如下:

pandas.errors.ParserError: Error tokenizing data. C error: Expected 1 fields in line 7, saw 2

1、报错原因

中间字符串有错误,因为 read.csv 默认分隔符是“,”,比如前面都是一行没有“,”,后面突然出现一行有“,”,这时这行数据就会变成两列,前面是一列,后面忽然变成两列 ,这时程序就会报这种错误。

 

我的这个错误是由于 用 pandas.read_csv() 函数读取 Excel 文档(其实也不能怪我,同事给的文档后缀是 .csv,哪成想竟然是个Excel文件,最后是执行 file 命令才知道的,坑了我一个小时的时间啊。。。)

2、解决办法

使用 pandas.read_excel()

当然我查到有改成如下代码成功了的,虽然对我的问题不适用,也记录在此,主要是 sep 参数:

  1)data = pd.read_csv(inputfile, encoding='utf-8',header=None,sep = None)

  2)data = pd.read_csv(inputfile, encoding='utf-8',header=None,sep = '\t')

3、事后感想

虽然此事乌龙,但也让我处理了一个从没遇到过的 bug,也算有其价值,顺便想暴打一顿同事小哥,毕竟我大周日的来加班也不容易啊。。。

  • 41
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 15
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 15
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值