我的文本文件如下所示:
0.289
--------
A B C D E
--------
EBA
E-D
EB-
EED
EBD
EBE
E-D
E-D
现在我想将各种位读入数据结构。
我想学习如何使用数据帧,所以我想打开文件将第一个值读入浮点数,跳过一行,将下一行读入内置列表,然后跳过一行并将其余内容读入数据框。
数据框的文件读取例程似乎适用于整个文件,因此不确定如何执行此操作。
您还必须能够向数据框添加行,我只是不知道如何操作并且文档非常广泛 - 这很好 - 但我需要阅读50页才能找到答案。 ..
编辑:我可以这样做,但必须有一个更好的方式:
alignmentMatrix = []
with open("DataFile.txt", 'r') as f:
theta = f.readline().strip()
f.readline()
alphabet = f.readline().split()
f.readline()
for line in f:
row = list(line.strip())
alignmentMatrix.append(row)
alignmentDF = pandas.DataFrame(alignmentMatrix)
所以我最终得到了这个:
0 1 2
0 E B A
1 E - D
2 E B -
3 E E D
4 E B D
5 E B E
6 E - D
7 E - D
所以这是一个2D数据帧。
答案 0 :(得分:1)
对于第一位,你不能比你的例子更好。但是,您可以将余数读取为固定宽度文件(pandas.read_fwf):
with open("test.txt", 'r') as f:
theta = float(f.readline().strip())
f.readline()
alphabet = f.readline().split()
f.readline()
alignmentDF = pandas.read_fwf(f, widths=[1,1,1], header=None)