У меня есть набор данных, который я пытаюсь разделить на «события», основанные на условии. Некоторые виды записей указывают, что новое событие началось, в то время как другие виды записей не представляют изменений / оставаясь на курсе.
Например, в этом наборе данных действие «Влево» или «Вправо» будет указывать на начало нового события:
| Id | Action |
|-----+---------|
| 1 | Left |
| 2 | Forward |
| 3 | Forward |
| 4 | Right |
| 5 | Forward |
| 6 | Left |
| ... | ... |
Результирующая таблица, которую я хочу, выглядела бы так:
| Id | Action | GroupId |
|-----+---------+---------|
| 1 | Left | 1 |
| 2 | Forward | 1 |
| 3 | Forward | 1 |
| 4 | Right | 2 |
| 5 | Forward | 2 |
| 6 | Left | 3 |
| ... | ... | ... |
В чем-то вроде python я мог бы сделать это с помощью счетчика и цикла for (псевдо-код):
GroupID = 1
for row in data:
if Action == "Left" OR Action == "Right":
GroupID = GroupID + 1
else:
GroupID = GroupID
Я чувствую, что это должен быть действительно простой однострочный текст, но мой мозг сейчас сломан, и мне трудно осмыслить это.