У меня есть следующий кадр данных панд:
Circuit-ID DATETIME LATE?
78899 07/06/2018 15:30 1
78899 08/06/2018 17:30 0
78899 09/06/2018 20:30 1
23544 12/07/2017 23:30 1
23544 13/07/2017 19:30 0
23544 14/07/2017 20:30 1
А мне нужно рассчитать смещенное значение для DATETIME и LATE? столбцы, чтобы получить следующий результат:
Circuit DATETIME LATE? DATETIME-1 LATE-1
78899 07/06/2018 15:30 1 NA NA
78899 08/06/2018 17:30 0 07/06/2018 15:30 1
78899 09/06/2018 20:30 1 08/06/2018 17:30 0
23544 12/07/2017 23:30 1 NA NA
23544 13/07/2017 19:30 0 12/07/2017 23:30 1
23544 14/07/2017 20:30 1 13/07/2017 19:30 0
Я попробовал следующий код:
df.groupby(['circuit ID, DATETILE', LATE? ]) \
.apply(lambda x : x.sort_values(by=['circuit ID, 'DATETILE', 'LATE?'], ascending = [True, True, True]))['LATE?'] \
.transform(lambda x:x.shift()) \
.reset_index(name= 'LATE-1')
Но я продолжаю получать ошибочные результаты в некоторых строках, где первое смещенное значение отличается от Nan.
Не могли бы вы указать более чистый способ получить желаемый результат?