基于模糊逻辑关系群的Pandas数据分组

2024-05-14 03:39:21 发布

您现在位置:Python中文网/ 问答频道 /正文

对不起,我的英语不好

所以我有这样一个熊猫数据帧:

    Present State   Next State
0   A13             A13
1   A13             A14
2   A14             A12
3   A12             A14
4   A14             A14
5   A14             A11
6   A11             A11
7   A11             A12
8   A12             A13
9   A13             A12
10  A12             A14
... ...             ...
121 A16             A21
122 A21             A17
123 A17             A16
124 A16             A19
125 A19             A24
126 A24             A24
127 A24             A27

我想根据我的时间间隔数据帧对它进行分组,我想计算从状态a到状态b的转换次数

我已经写了一个代码,它没有显示任何错误

flrg = pd.DataFrame(columns=['Present State', 'Next State'])
states = intervals["Ai"]
firststate = []
secstate = []
counter = 0
for i in states:
    for index, row in flr.iterrows():
        temp = {}
        if(i == row["Present State"]):
            if row["Next State"] in temp:
                temp[row["Next State"]] += 1
            else:
                temp[row["Next State"]] = 1
    firststate.append(i)
    secstate.append(temp)
flrg["Present State"] = firststate
flrg["Next State"] = secstate

flrg  

但结果并不正确。它只捕捉到一个过渡

    Present State   Next State
0   A1              {}
1   A2              {}
2   A3              {}
3   A4              {}
4   A5              {}
5   A6              {}
6   A7              {}
7   A8              {}
8   A9              {}
9   A10             {}
10  A11             {}
11  A12             {}
12  A13             {}
13  A14             {}
14  A15             {}
15  A16             {}
16  A17             {}
17  A18             {}
18  A19             {}
19  A20             {}
20  A21             {}
21  A22             {}
22  A23             {}
23  A24             {'A27': 1}
24  A25             {}
25  A26             {}
26  A27             {}

我该怎么做才能修好它?我真的很感谢你的帮助

输出应如下所示:

    Present State   Next State
0   A1              {'A4': 1}
1   A2              {}
2   A3              {'A8': 1}
3   A4              {'A1': 1,'A3': 1,'A4': 1,'A5': 1,'A8': 1}
4   A5              {'A4': 1,'A5': 1,'A6': 1,'A8': 2,'A10': 1}
..  ...             ...
22  A23             {}
23  A24             {'A24': 1,'A27': 1}
24  A25             {}
25  A26             {}
26  A27             {}

Tags: tempnexta4rowa5statea16present