1

假设我有 2 列:

  OP_CODE      Additional Work
   a                 b
   a                 c
   a                 
   b                 d
   b                 e
   c                 
   d                 f
   d                 g
   d              
   e 
   f
   g

我要做的是,我必须从 OP_Code 列中获取一个值,并通过 Additional Work 获取所有相应的值。现在 Additional Work 列值是我的新 OP_Codes。然后再次搜索其对应的Additional Works。这个过程一直持续到我遇到该特定列的空白单元格。上表的输出如下所示: https://i.stack.imgur.com/SycQM.png 问题是我们不知道一棵树可以有多少分支。以下是我的代码示例:

from anytree import Node, RenderTree
udo = Node("019201")


x = df_asra[df_asra.op_code == udo.name]


First_Level = {}
for i in range(0,len(x)):
    First_Level[i] = Node(x['Additional Work'].iloc[i], parent=udo)
for j in range(0,len(First_Level)):
    y = df_asra[df_asra['op_code'] == (First_Level[j]).name]
Second_Level = {}


while(y['Additional Work'].empty == False):


     for k in range(0,len(y)):
         Second_Level[k] = Node(y['Additional Work'].iloc[k], parent = First_Level[j])

     for l in range(0,len(Second_Level)):
         z = df_asra[df_asra['op_code'] == (Second_Level[l]).name]

     y = z
     First_Level = Second_Level





for pre, fill, node in RenderTree(udo):
     print("%s%s" % (pre, node.name))

现在我得到这样的输出:

019201
├── 037061
│   ├── 015765
│   ├── 015795
│   │   ├── 013032
│   │   ├── 014270
│   │   ├── 015768
│   │   │   └── nan
│   │   └── nan
│   ├── nan
│   ├── nan
│   ├── nan
│   └── nan
├── nan
└── nan

Nan 是空白列现在我的问题是所有分支都没有输出。例如 014270 有更多的分支。它仅适用于某些部分。请帮助

4

0 回答 0