我正在从事体育运动。 目的是在游戏中记录当前的eventdatetime和PreviousEventTime。我在下面的链接中有一个示例数据集。
https://drive.google.com/open?id=1DUNrWPFwrkZHpq_KeA4rZCJ94sbpUEDI
在此文件中,有11列。该活动是根据时间收集的。 对于此重新安排,我将使用以下列 gsm_ID , eventdatetime 列
我想创建一个新列 PreviousEventTime ,该列占用 eventdatetime 列的n-1行。 这意味着对于每个 gsm_ID ,都会有第一个 eventdatetime 。 与时间列相比,新列将表示下一个事件时间。
gsm_ID eventdatetime PreviousEventTime
2462794 08/11/2017 18:46 08/11/2017 18:45
2462794 08/11/2017 18:49 08/11/2017 18:46
2462794 08/11/2017 19:13 08/11/2017 18:49
2462794 08/11/2017 19:31 08/11/2017 19:13
2462794 08/11/2017 20:09 08/11/2017 19:31
2462795 08/12/2017 17:39 08/12/2017 16:30
2462795 08/12/2017 17:44 08/12/2017 17:39
以上示例仅适用于两场比赛。您可以通过 gsm_id 进行区分。 PreviousEventTime的for行始终为 matchdatetime。 我将有100场比赛。但是这个过程将重复上述例子。
非常感谢您的建议。 问候, 和风
答案 0 :(得分:0)
首先,我们必须在使用shift方法后将数据集加载到pandas数据框中。
last_val=df["Time"].iloc[-1]
df['second_eventime']=df['Time'].shift(-1) #This will leave last column value as blank
df.iloc[-1, df.columns.get_loc('second_eventime')] = last_val #To Maintain the value at last row