我有一个数据集,我试图根据条件进入"事件".某些记录表明新事件已经开始,而其他类型的记录表示没有变化/保持过程.
例如,在此数据集中,"左"或"右"操作将指示新事件的开始:
| Id | Action |
|-----+---------|
| 1 | Left |
| 2 | Forward |
| 3 | Forward |
| 4 | Right |
| 5 | Forward |
| 6 | Left |
| ... | ... |
Run Code Online (Sandbox Code Playgroud)
我想要的结果表看起来像:
| Id | Action | GroupId |
|-----+---------+---------|
| 1 | Left | 1 |
| 2 | Forward | 1 |
| 3 | Forward | 1 |
| 4 | Right | 2 |
| 5 | Forward | 2 |
| 6 | Left | 3 |
| ... | ... | ... |
Run Code Online (Sandbox Code Playgroud)
在类似python的东西中,我可以使用计数器和for循环(伪代码)来做到这一点:
GroupID = 1
for row in data:
if Action == "Left" OR Action == "Right":
GroupID = GroupID + 1
else:
GroupID = GroupID
Run Code Online (Sandbox Code Playgroud)
我觉得这应该是一个非常简单的单行,但我的大脑现在已经被打破了,我很难概念化这个.