如何读取具有不同长度的行的数据文件? 我正在尝试加载tsv(制表符分隔)文件,每行应包含19个属性。但是某些行具有4个属性,而下一行具有其他属性。 每条记录具有全部19个属性,但它们只有不规则的换行符。 该文件如何处理?我想将它们作为数据集存储在表中,然后可以使用iloc获取合适的列表。
我运行了这段代码,但是得到了错误 “错误标记数据。C错误:在32770行中应有16个字段,看到了19个”
import numpy as np
import pandas as pd
dataset = pd.read_csv('data1.tsv',sep="\t",header=None)
T = dataset.iloc[:,8].values
文件就像:
(line1)1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
(line2)1 2 3 4
(line3)5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
(line4)1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
...
答案 0 :(得分:1)
我解决了这个问题,但是..我的代码真的很丑
import csv
with open('data1.tsv',newline='') as csvfile:
spamreader = csv.reader(csvfile, delimiter='\t')
dataset=[]
tmp=[]
for row in spamreader:
if len(row)==19:
dataset.append(row)
elif len(row)==4:
tmp=row
elif len(row)==15:
tmp.extend(row)
dataset.append(tmp)
tmp=[]