如何使用Python将文件的一部分读入DataFrame

时间:2016-05-31 00:27:42

标签: python pandas

我的文本文件如下所示:

    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数据帧。

1 个答案:

答案 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)