我想比较组中的所有行,以找到事件的正确顺序。我的示例数据帧具有类似的结构:
Group Prev_Event Current_Event Time
001 Blank Initial 2019-02-13 18:00:00
001 Ready Loading 2019-02-13 18:00:00
001 Initial Ready 2019-02-13 18:00:00
001 Loading Executing 2019-02-13 18:30:00
001 Executing Evaluating 2019-02-13 18:30:00
001 Evaluating Terminating 2019-02-13 18:30:00
002 Blank Ready 2019-02-14 07:00:00
通过将上一个事件与当前的事件进行比较和匹配,该数据点的相应时间戳将通过添加1s进行修改。但是,如果时间戳值与上一个数据点不同,则我希望保留原始时间戳。你知道吗
注意:我的数据有多个循环,其中上一个事件与当前事件匹配的多个数据点,因此无法使用图形。你知道吗
我的预期产出是:
Group Prev_State Current_State New_Timestamp
001 None Initial 2019-02-13 18:00:00
001 Ready Loading 2019-02-13 18:00:02
001 Initial Ready 2019-02-13 18:00:01
001 Loading Executing 2019-02-13 18:30:00
001 Executing Evaluating 2019-02-13 18:30:01
001 Evaluating Terminating 2019-02-13 18:30:02
002 Blank Ready 2019-02-14 07:00:00
我想我需要使用一个基本函数shift来迭代组中的多行,并与Prev和Current事件变量进行比较和排序,但我不知道如何应用。 任何帮助都将不胜感激。你知道吗
此外,在某些特殊情况下,某些数据点不遵循上一事件与其他数据点的当前事件不匹配的模式;在这些情况下,必须随机分配顺序。你知道吗
附加示例:
Group Prev_State Current_State Timestamp New_Time
001 None Initial 2019-02-13 18:00:00 2019-02-13 18:00:00
001 Ready Loading 2019-02-13 18:00:00 2019-02-13 18:00:02
001 Initial Ready 2019-02-13 18:00:00 2019-02-13 18:00:01
001 Initial Waiting 2019-02-13 18:30:00 2019-02-13 18:30:00
001 Waiting Ready 2019-02-13 18:30:00 2019-02-13 18:30:01
001 Evaluating Terminating 2019-02-13 18:30:00 2019-02-13 18:30:02
002 Blank Ready 2019-02-14 07:00:00 2019-02-14 07:00:00
在第3行和第4行(Prev\u状态)中,这两个行都具有相同的“初始”状态,可以与第一行匹配(“当前\u状态”),因此,可以为顺序选择上面的任何一个。 在组1的最后一行中,Prev\u状态无法与当前的任何\u状态匹配,因此必须为其分配一个独立的顺序。你知道吗
这是我的数据集的一个样本。你知道吗
目前没有回答
相关问题 更多 >
编程相关推荐