繁体   English   中英

使用 Panda read_csv 列出超出范围的索引

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM