У меня есть длинная очищенная (без дубликатов в порядке появления) последовательность целых чисел в кадре данных pandas, и я ищу способ найти в ней закономерности. Шаблоны, которые я ищу, могут быть описаны со следующими параметрами и, возможно, появятся следующим образом:
example parameters:
A = constant increment of 10
B = constant decrement of 6
C = constant decrement of 3
D = increment of 12 if no decrement larger than 5 within sequence-block
Sequence A-B-A
Sequence D-B-A-C
Может ли кто-нибудь дать мне подсказку, чтобы найти правильный python инструмент для достижения этого ? Рекомендации по инструментам для автоматического поиска неизвестных шаблонов в последовательностях также были бы весьма признательны. Спасибо!
ОБНОВЛЕНИЕ:
Это начало последовательности, из которой я печатаю постоянные приращения в порядке возрастания и убывания
seq rt_up rt_down
0 - 1
-1 1 -
0 2 -
1 3 -
2 - 1
1 - 2
0 - 3
-1 - 4
-2 - 5
-3 - 6
-4 - 7
-5 1 -
-4 2 -
-3 3 -
-2 4 -
-1 5 -
0 6 -
1 - 1
0 - 2
-1 1 -
0 - 1
-1 - 2
-2 - 3
-3 - 4
-4 - 5
-5 - 6
-6 1 -
-5 2 -
-4 3 -
-3 4 -
-2 5 -
-1 6 -
0 7 -
1 8 -
2 9 -
3 - 1
2 - 2
1 - 3
0 - 4
-1 - 5
Теперь я попытался собрать это с помощью pd.cut:
bins = [1, 2, 1, 3, 1, 4, 1, 5, 1, 6, 1, 7, 1, 8.......
Чтобы я мог обозначить его как A (rt_up 6) = приращение 6, но я получаю сообщение об ошибке:
бункеры должны увеличиваться монотонно
Мне понадобится решение, чтобы сгруппировать его таким образом, чтобы я мог регулировать расстояние между A и B в исходной последовательности, или просто сказать, если есть место, считайте его как последовательность A (rt_up x) и B (rt_down x), либо не считать.
Чтобы прояснить это: В приведенной выше последовательности вы видите rt_up 1-6, затем rt_down 1-2, затем rt_up только 1, пока за ним снова не последует rt_down 1-6. Единственная 1 - это пробел