python valueerror index_python出现index invalid错误

今日用python导入数据进行建模时出现了N多错误,追踪到底还是源于我的粗心,数据预处理时以为把文字部分都替换掉了,结果还是漏了少数几个没找出原因。为找出这几个文字错误经历了好多“挫折”和“矛盾”啊。。。总结错误和原因。

导入数据

a = pd.read_table('D:\\test.txt',sep='|',index_col = 'ID')

出现错误

ValueError:Index ID invalid

出现这个错误可能是数据格式为UTF8,于是我用Notepad++将数据改为‘’以UTF-8无BOM格式编码‘’格式。于是又出现了以下的错误:

‘ascii’ codec can't decode byte 0xb5 in position 32:ordinal not in range(128)

百度了一下,又说是我编码的问题,百度建议是将数据改为UTF8格式,我就懵圈了,跟前面有矛盾啊,但还是进行了尝试,用Notepad++将数据改为‘’以UTF-8格式编码‘’格式,结果又回到了前面的格式,无奈,再次搜了下,出现用代码改为UTF8格式的,于是尝试了一下:

#在需要执行的*.py头部加上

importsys

reload(sys)

sys.setdefaultencoding('utf8')

还是出现了错误,不过出现的错误看得懂了,数据中存在“档”这个文字,于是我把“档”字删掉,还是出现前面提到的第一个错误,回过头想一下其中的逻辑,把数据格式重新转为‘’以UTF-8无BOM格式编码‘’格式,问题就解决了。

后话:归根结底是数据的问题,python对数据编码格式要求很严格,我检查了好多遍数据,没有什么问题,文字也替换了,结果还是文字问题,除了粗心问题还有就是数据量太大,直接查看看不出,所以可以运用第二步的代码将数据编码格式强制转为UTF8格式,这样报出来的错误显而易见,直接告诉你数据中存在哪些文字,你直接将文字替换为数字就好了,人工还是比不上计算机遍历的全面和仔细的。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值