假设我有两列:
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获取所有相应的值。现在,其他工作列值是我的新OP_Codes。然后再次搜索其相应的附加作品。此过程一直持续到我遇到该特定列的空白单元格为止。 上表的输出如下所示: 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具有更多分支。它只适用于某些部分。 Plz帮助