熊猫数据重组

时间:2018-05-06 07:20:57

标签: python pandas dataframe

我正在从事体育运动。 目的是在游戏中记录当前的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场比赛。但是这个过程将重复上述例子。

非常感谢您的建议。 问候, 和风

1 个答案:

答案 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