从打印输出中获取表格(熊猫)

问题描述 投票:0回答:1

我运行了一个名为codeml的程序,该程序在python软件包ete3中实现。

这里是codeml生成的模型的打印:

>>> print(model)
 Evolutionary Model fb.cluster_03502:
        log likelihood       : -35570.938479
        number of parameters : 23
        sites inference      : None
        sites classes        : None
        branches             : 
        mark: #0  , omega: None      , node_ids: 8   , name: ROOT
        mark: #1  , omega: 789.5325  , node_ids: 9   , name: EDGE
        mark: #2  , omega: 0.005     , node_ids: 4   , name: Sp1
        mark: #3  , omega: 0.0109    , node_ids: 6   , name: Seq1
        mark: #4  , omega: 0.0064    , node_ids: 5   , name: Sp2
        mark: #5  , omega: 865.5116  , node_ids: 10  , name: EDGE
        mark: #6  , omega: 0.005     , node_ids: 7   , name: Seq2
        mark: #7  , omega: 0.0038    , node_ids: 11  , name: EDGE
        mark: #8  , omega: 0.067     , node_ids: 2   , name: Sp3
        mark: #9  , omega: 999.0     , node_ids: 12  , name: EDGE
        mark: #10 , omega: 0.1165    , node_ids: 3   , name: Sp4
        mark: #11 , omega: 0.1178    , node_ids: 1   , name: Sp5

但是由于它只是印刷品,所以我需要将这些信息放入表中,如:

Omega       node_ids       name 
None        8              ROOT
789.5325    9              EDGE
0.005       4              Sp1
0.0109      6              Seq1
0.0064      5              Sp2
865.5116    10             EDGE
0.005       7              Sp3
0.0038      11             EDGE
0.067       2              Sp3
999.0       12             EDGE
0.1165      3              Sp4
0.1178      1              Sp5

因为我需要解析这些信息。

您有一个如何处理打印输出的想法吗?

感谢您的帮助。

python pandas ete3
1个回答
0
投票

为什么要首先打印模型?这不是以编程方式访问模型内​​部的好方法,因为这是供人类读取的。您必须找出Evolutionary Model的结构,将这种结构转换为字典,并使用pandas.DataFrame.from_dict从该字典创建数据框。

首先查看model.__dict__model.__repr__

© www.soinside.com 2019 - 2024. All rights reserved.