2015-08-25 23 views
1

我有一个文本文件,制表符分隔的第80行的文本文件,这些都是我需要的文件中唯一的行。我通常会打开该文件是这样的:只选择某些行而开在熊猫

df=pd.read_csv(r'file.txt', sep='\t') 

但这返回错误:

CParserError: Error tokenizing data. C error: Expected 7 fields in line 84, saw 81 

因为沿途某处不再制表符分隔Im相当肯定。如果我手动除了第80行我可以将标签分隔符的文件中删除一切,它读取很好,但我需要为大量的文件做到这一点。我知道,我只能选择用这个第80:

df=df.iloc[:80,:] 

但后来我的数据帧具有\t分离每一列,而不是空间的像我想要的。有没有办法打开文件这样的话我可以设置sep='\t'没有错误只选择第80行?

回答

1

您可以只指定读取使用PARAM nrows第80行:

df=pd.read_csv(r'file.txt', sep='\t', nrows=80) 
+0

感谢,完美的作品! –

0

您可以设置错误参数真,这将下降空白或畸形行。由于您必须手动为每个文件添加行计数,所以不适合按照我的视图。

df=pd.read_csv(r'file.txt', sep='\t', error_bad_lines=False) 

你也可以经过这些属性

warn_bad_lines

skip_blank_lines

Folow this link to read more

+0

我会考虑这个太,NROWS没有工作对我来说,虽然所以他们必须已在指定 –

+0

对没错,所有的最好的 –