Для ввода:
df = pd.DataFrame(np.array([[1, "A"],[2, "A"],[3, "B"],[4, "C"],[5, "D" ],[6, "A" ],[7, "B" ],[8, "A" ],[9, "C" ],[10, "D" ],[11,"A" ],
[12, "A"],[13, "B"],[14, "B"],[15, "D" ],[16, "A" ],[17, "B" ],[18, "A" ],[19, "C" ],[20, "D" ],[21,"A" ],
[22, "A"],[23, "A"],[24, "C"],[25, "D" ],[26, "A" ],[27, "C" ],[28, "A" ],[29, "C" ],[30, "D" ] ]),
columns=['No.', 'Value'])
Я получаю вывод:
No. Value
0 1 A
1 2 A
2 3 B
3 4 C
4 5 D
5 6 A
6 7 B
7 8 A
8 9 C
9 10 D
10 11 A
11 12 A
12 13 B
13 14 B
14 15 D
15 16 A
16 17 B
17 18 A
18 19 C
19 20 D
20 21 A
21 22 A
22 23 A
23 24 C
24 25 D
25 26 A
26 27 C
27 28 A
28 29 C
29 30 D
Теперь я хочу создать последовательности данных. Эта последовательность определяет область значений до появления значения «D». Например, в первой последовательности есть строки от № 1 до № 5 (в комплекте). Вторая последовательность от № 6 до № 10 (в комплекте) и т. Д.
После этого я хочу для кодирования значений в числа: A -> 1, B-> 2, C -> 3, D-> 4 Если в последовательности за значением A следует другой A или несколько A, он будет суммирован в одно число 1. То же самое относится и к другим значениям.
Первая последовательность = A, A, B, C, D Для этого я хочу получить что-то подобное = [1,2,3,4]
Для всего вывода я хочу что-то вроде этого:
result = list([[1,2,3,4],[1,2,1,3,4],[1,2,4],[1,2,1,3,4],[1,3,4],[1,3,1,3,4]])
Вывод:
[[1, 2, 3, 4],
[1, 2, 1, 3, 4],
[1, 2, 4],
[1, 2, 1, 3, 4],
[1, 3, 4],
[1, 3, 1, 3, 4]]