Я занимаюсь спортом.
Цель состоит в том, чтобы записать текущее время события и PreviousEventTime в игре. У меня есть образец набора данных по ссылке ниже.
https://drive.google.com/open?id=1DUNrWPFwrkZHpq_KeA4rZCJ94sbpUEDI
В этом файле 11 столбцов. события собираются на основе времени.
Для этой перестановки я буду использовать следующие столбцы
gsm_ID , время события столбцы
Я хочу создать новый столбец PreviousEventTime , который займет n-1 строку столбца eventdatetime .
Это означает, что для каждого 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 . Строка for в PreviousEventTime всегда будет matchdatetime.
У меня будет 100 игр. но процесс повторится, как указано выше.
eventdata ['PreviousEventTime-1'] = eventdata.groupby(['gsm_id'])['eventdatetime'].shift(-1)
Но это работает только для первых gsm_ID . Это не сработало для других gsm_ID .
Выходные данные из приведенного выше сценария ниже:
Ваш совет будет высоко оценен.
С Уважением,
Зефир