我有一个文本文件,其中前80行用制表符分隔,这是我在文件中唯一需要的行。我通常会这样打开文件:

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


但这返回错误:

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


因为沿途某处不再是制表符分隔的对象,我很确定。如果我手动删除文件中除前80行之外的所有内容,则可以设置制表符分隔符,它的显示效果很好,但是我需要对许多文件进行此操作。我知道我只能使用此方法选择前80个:

df=df.iloc[:80,:]


但是然后我的数据框有\t分隔每一列,而不是像我想要的空格。有没有一种方法在打开文件时仅选择前80行,这样我就可以设置sep='\t'而不会出现错误?

最佳答案

您可以指定使用参数nrows仅读取前80行:

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

07-27 13:16
查看更多