我正在尝试将数字数据从 .txt 读取到 pandas 数据帧,但它需要一些争论。有些行未对齐(我认为是制表符)
现在的工作只是删除未对齐的行,但这是一个小数据集,我想保留每一行。 代码:
df = pd.read_table('path/file.txt', on_bad_lines='skip', header=None)
df
输出:
0
0 15.26\t14.84\t0.871\t5.763\t3.312\t2.221\t5.22\t1
1 14.88\t14.57\t0.8811\t5.554\t3.333\t1.018\t4.9...
2 14.29\t14.09\t0.905\t5.291\t3.337\t2.699\t4.82...
使用 read_table 而不跳过坏行会返回: 'ParserError:标记数据时出错。 C 错误:第 8 行预计有 8 个字段,结果看到 10'
我尝试重写 .txt 以用单个空格(或逗号)替换制表符,并尝试使用特定分隔符读取新文件,但这让我回到了 ParserError (策略灵感来自于在整个文本文件 python 中将 Tab 替换为空格)。
inputFile = open('path/file.txt', 'r') # read mode
exportFile = open('path/file_v1.txt', 'w') # write mode
for line in inputFile:
new_line = line.replace('\t', ',')
exportFile.write(new_line)
inputFile.close()
exportFile.close()
(PS。Python初学者,第一个StackOverflow问题。如果我错过了一些发帖约定,请提前表示感谢和抱歉)
您可以使用
sep='\s+'
参数来指定如何拆分数据。这意味着每一列都由一个或多个空格分隔。
尝试:
df = pd.read_table('path/file.txt', header=None, sep='\s+') # or sep='\t+'