假设我有 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 有更多的分支。它仅适用于某些部分。请帮助