Python 重新计算数据帧中的层次结构

Python 重新计算数据帧中的层次结构,python,pandas,dataframe,Python,Pandas,Dataframe,我有一个数据框,它显示了某种层次结构: SFID SL FID L Prob 1 N L1 A L0 1.000000 2 W L3 A L0 1.000000 6 Z L2 N L1 0.603842 10 M L3 C L0 0.485067 11 O L3 B L0 1.000000 12 X L2

我有一个数据框,它显示了某种层次结构:

    SFID  SL    FID  L      Prob
1   N     L1    A    L0     1.000000
2   W     L3    A    L0     1.000000
6   Z     L2    N    L1     0.603842
10  M     L3    C    L0     0.485067
11  O     L3    B    L0     1.000000
12  X     L2    L    L2     0.600000
17  L     L2    C    L0     0.500000
20  P     L1    B    L0     0.400000
32  Y     L3    P    L1     0.900000
我想生成属于每个唯一L0的所有SFID和FID。以及重新计算他们的概率。例如,Prob(B->Y)=Prob(B->P)*Prob(P->Y)

因此,最终的数据帧可能如下所示:

    SFID  FID   L   Prob
0   N     A     L0  1.000000
1   W     A     L0  1.000000
2   Z     A     L0  0.603842
3   O     B     L0  1.000000
4   P     B     L0  0.400000
5   Y     B     L0  0.360000
6   L     C     L0  0.500000
7   M     C     L0  0.485067
8   X     C     L0  0.300000

层次结构是否只有一级,就像只有A->N或A->N-Z一样,或者你也可以得到A->N->Z->Y->R->D?它从L0到L3。所以从技术上来说,你可以有一个->N->X->Z,我希望这是一个->N,A->X,A->Z