【发布时间】:2016-10-24 04:29:38
【问题描述】:
我正在尝试通过 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文件不是一个选项吗? -
很遗憾,不,脚本可能会读取许多这样的 csv 文件,我想处理此类错误。
-
如果这些行完全只是空格,那么
skip_blank_lines=True应该可以解决问题。 -
SvbZ3r0 :但事实并非如此,我怀疑它可能是该行中的其他字符。 @shivsn:我已经在上面的命令中使用了它:/谢谢你的回答。
-
试试
quote_chars如果有的话。