pandas.errors.ParserError:指定的列太多:预期9996,找到9808

时间:2017-11-21 01:37:40

标签: python pandas

当我使用pandas处理我的数据时,这里有一个类似标题的错误。我的数据列不相同,所以我按降序排序。第一行是最长的,下一行是较短的等等。当文件很小时,pandas可以成功处理它。但是在我将所有数据写入文件后,它无法处理并向我显示此错误。

这是我的代码:

def sequencein(filepath):    
    print (filepath)    
    print("time", time.time())    
    data = pd.read_table(filepath, header=None)    
    print("time", time.time())    
    matr = data.values    
    print("sequence shape:", matr.shape)    
    return matr

文件的行尾如下所示: enter image description here

2 个答案:

答案 0 :(得分:2)

我自己解决了这个问题。我刚刚将data = pd.read_table(filepath, header=None)修改为data = pd.read_table(filepath)。然后我在我的数据文件中添加了一个标题行并且它有效。

答案 1 :(得分:1)

documentation说有两个引擎:

  

engine:{‘c’,‘python’},可选

     

要使用的解析器引擎。 C引擎速度更快,而python引擎当前功能更完善。

问题似乎仅在使用'c'引擎时出现,对于较大的文件会自动选择该引擎。

所以,您可以尝试

data = pd.read_table(filepath, header=None, engine='python')