[英]List index out of range with Panda read_csv
我正在尝试通过 python 脚本从 csv 文件读取大数据(数千行),如下所示:
.....
2015-11-03 20:16:28,000;63,62;
2015-11-03 20:16:29,000;63,75;
2015-11-03 20:16:30,000;63,86;
2015-11-03 20:16:31,000;64,25;
但似乎其中一个文件有额外的空行,其中有 196541465 个空格 - 然后在使用 pandas lib 的 read_csv 读取它时代码崩溃。
File "/usr/lib/python2.7/dist-packages/pandas/core/frame.py", line 4221, in append
elif isinstance(other, list) and not isinstance(other[0], DataFrame):
IndexError: list index out of range
我正在使用以下命令:
data = pd.read_csv(input_file,skiprows = [0],usecols=[0,1,2],delimiter=';',decimal=',', names = [ 'date','angle','Unnamed'],na_filter = False,parse_dates = [0],date_parser = reformat_date,error_bad_lines = False,skip_blank_lines=True)#,nrows = 8191)
罪魁祸首是第 8192 行,当限制行(按rows = 8191
)时,它工作得很好。 我已经尝试了文档中的许多选项,但似乎不起作用! 有什么想法吗?
我收到此错误是因为我试图读取标题与列数相比太少的 CSV 文件(例如 10 列,但只有 8 个标题。如果您设置index_col=False
,pandas 不知道如何处理)额外的列)
根据下面的 Mitjas 评论进行编辑。
我只是遇到了同样的问题, index_col = False
不起作用。 我有 19 列,只有 17 个标题。 通过分别读取列和标题然后添加标题名称来解决它。
dfcolumns = pd.read_csv('file.csv',
nrows = 1)
df = pd.read_csv('file.csv',
header = None,
skiprows = 1,
usecols = list(range(len(dfcolumns.columns))),
names = dfcolumns.columns)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.