在做课堂练习的时候遇到这样,一个问题看起来好像没有明显指明错误原因。
但是可以看出KeyError错误,去搜索了
During handling of the above exception, another exception occurred:
找到的答案是可能存在空缺值,利用data4.to_csv()把刚从文件中读取的数据再写入文件,并没有发现空缺值。
于是针对出现错误那行的代码进行查找错误
x值有输出,证明这部分代码没有问题
再尝试另一个
错误看不懂,嗯但是可以确定的是就是这个部分有问题。
同样的代码再别的函数里就没有问题
它这里读取文件居然没有设置索引,好的那我也删除索引设置(意思就是读取文件时,自动生成索引)
依旧报错(我都快哭了,后面回想错误里面有一个单词一直在提示着我,但我就是眼瞎)
然后我灵机一动,把loc改成iloc
咦,还是报错,但是第六感告诉我这么长的错误解释,应该能找到答案
虽然没找到明确的解释,但是看着关于
df.iloc[1,1:]
的解释就是“1:”这个1是一个绝对值,好像有点懂了,这时候学长也根据本文第一张图片回复了我的问题,索引出现错误
我茅塞顿开,在报错里面不下5个“index”这个词的出现(虽然有其他后缀 ,但是index真的满屏开花)
接下来我尝试打印一下data4数据看看它长什么样
而另一个for循环里不报错的代码又是什么样的?
如此基本可以确定iloc找不到索引为1,再次修改代码
代码不报错了,成功提取出数据。
问题解决了。
总结:出现这个错误就是要看看自己索引是不是有问题。
看到标红不要害怕,找找有没有什么认识的单词,逐步下手。(前几天做Spark实验的时候也是各种报错,老师就跟我说过,看到虽然错误都是英文,但是最好先看懂每一个单词,然后再整句搜索查找原因。也许这样才有助于我提升修复bug的能力吧!)