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