У меня большой фрейм данных, который выглядит как ниже. Данные отсортированы по идентификатору, за которым следует OnTime
id OnTime OffTime
0 1 2017-08-01 09:38:17 2017-08-01 09:49:31
1 1 2017-08-01 09:53:15 2017-08-01 09:54:50
2 1 2017-08-01 09:57:29 2017-08-01 10:10:42
3 2 2017-08-01 09:02:00 2017-08-01 09:27:15
4 2 2017-08-01 09:29:15 2017-08-01 09:43:41
Мне нужно рассчитать разницу во времени между текущим OnTime и предыдущим OffTime, если идентификаторы совпадают. (эта разница называется timeSince)
В поисках эффективного способа сделать это на Python. Фрейм данных имеет около 400 тыс. Строк. Я думал о группировке по идентификаторам по я не совсем уверен, как я могу повторить и рассчитать разницу во времени.
Вывод должен выглядеть следующим образом:
timeSince
-1 #since this is the 1st row of ID 1 no previous OffTime exists
3.7333333333333334
2.65
-1 #since this is the 1st row of ID 2 no previous OffTime exists
2.0