Прошу прощения за мой плохой английский.
Итак, у меня есть пандас-фрейм, подобный этому:
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 {}