这也许不一定要通过改变编码的方式解决,说不定是跟csv文件的一些格式有关!!!
有人说程序是玄学,确实,那么复杂的计算机,程序,偶尔出点难解的小问题,应该也是可以谅解的吧!
我是在用pandas读取movielens的影评数据集时出现问题的。一共有4个csv文件,movies,link的读取正常,tags,ratings就出现了**‘utf-8’ codec can’t decode byte 0xc6 in position 3: invalid continuation byte报错,尝试百度的方法改变了编码,添加了delimeter = ','等都无果,于是进行了如下步骤然后成功了:
1.将可以成功打开的’movies.csv’文件复制一份,会自动命名为’movies-附件.csv’,并保存在当前目录下(为什么是’movies.csv’呢?因为它能够被成功读出来嘛!当然要像成功者靠拢了)!
2.打开’movies-附件.csv’和’ratings,csv’,将’ratings.csv’的内容复制到’movies-附件.csv’。点击关闭,会出现弹窗询问是否要保存不兼容的格式,点击否,保存副本。方便起见,将副本保存在桌面(名字仍为’movies-附件.csv’)。然后,查看桌面是否已存在此文件,存在了则再次点击关闭,仍然会出现上述弹窗,点击是退出。(网页版微信没有截图功能,手机拍图的,有点low,大家意思一下随便看看就好,希望可以帮助到有同样困惑的盆友们!)
3.用pandas读取movies-附件.csv即可得到ratings的内容。在这里,很奇怪的一点,同样的内容,文件名改为‘movies1.csv’等等都可以读取出来,但是包含ratings就报错了。深层原因也是非常不解!(show一下读出来后的效果)
4.顺藤摸瓜,发现,直接把‘ratings’文件名改为‘movies3’,也是可以读出来的。也就是说,报错是因为csv文件的文件名**,改一改说不定就能读出来了。