我在这样的数据框中构造了一个博弈树(经济学):
节点-父节点
b-a
c-一个
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的新手,我不知道该如何专门搜索。
谢谢!
答案 0 :(得分:0)
如果您始终从根开始并有条不紊,那么您只需沿着树下走,然后在访问新的子节点时添加一个级别。 如果没有订购,我想您可以向后走过去,数数步数,直到您扎根。
您可能需要一些递归函数才能遍历树。