import csv
import matplotlib.pyplot as plt
import pandas as pd
df = pd.read_csv("D:/data/0403/output2.csv", index_col=0,encoding='GBK')
df[:3]
代码正确,出现错误:IndexError: list index out of range
参考答案:
https://blog.csdn.net/weixin_37746009/article/details/94367162ll
list在读取的时候下标是从0开始读取的,list在已经定义的范围内,我们可以读取到索引值对应的值,但是如果下标没有定义,那么他的值是没有办法读取到的,这个时候也就是为什么会出现IndexError: list index out of range
。
为了方便读者理解,以下代码创建参考表格
outfile = open(r"D:\data03\output11.csv", "w", newline="")
writer = csv.writer(outfile)
heads_transfer=['id','station','bus']
writer.writerow(heads_transfer)
a=[1,2,3,5]
b=[2,3,4,5]
writer.writerow(a)
writer.writerow(b)
输出数据
可以看到表头有三列,但是第二行有5列
重复之前的错误代码
import csv
import matplotlib.pyplot as plt
import pandas as pd
df = pd.read_csv("D:/data/0403/output11.csv", index_col=0,encoding='GBK')
df[:3]
果然出现同款错误
IndexError: list index out of range结合上面的解决思路:
关键就是表头即第一行的时候:下标只到2,而第二行超过了2,所以数据无法成功提取。
做法:填充表头,使得表头和第二行一样长。
更改生成测试数据文件,
import csv
outfile = open(r"D:\data03\output11.csv", "w", newline="")
writer = csv.writer(outfile)
heads_transfer=['id','station','bus','taxi','car']
writer.writerow(heads_transfer)
a=[1,2,3,5,6]
b=[2,3,4,5,7]
writer.writerow(a)
writer.writerow(b)
输出成功
总结第一行的列表长度和后面行的列表长度不一致从而出现问题。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)