我在数据框中有一个博弈树(经济学),结构如下:
节点-父节点
B-a
C-a
D-b
E-b
F-B
G-C
H-d
也就是说,树中最上面的节点是a,它通向b和c。在tun中,b通向d,e,f,c通向g。最后,节点d通向h。我想创建一个额外的列,告诉我节点出现的级别,即,我想要如下所示的输出:
节点-父节点级别
B-a-1
C-a-1
D-b-2
E-b-2
F-b-2
G-C-2
H-d-3
我该怎么做呢?
此外,如果数据没有组织并且是随机的,即行没有按照我所展示的方式排序(但它总是有关于特定节点的父节点的信息),那么它们是解决相同问题并分配节点级别的一种方法吗?
我知道这可能非常简单,但我是Python的新手,我不知道如何具体搜索它。
提前感谢!
发布于 2018-10-26 15:09:36
如果您总是从根开始,并且排序,那么当您访问新的子节点时,您只需向下遍历树并添加一个级别即可。如果它不是有序的,我猜你可以向后移动并计算步骤,直到你到达根部。
你可能需要一些递归函数来遍历树。
https://stackoverflow.com/questions/53003151
复制相似问题