У меня есть фрейм данных, подобный следующему, где я храню информацию о свойствах для списка элементов. Каждое свойство имеет время начала и время окончания, связанные с ним. Если свойство имеет время окончания NaT, это означает, что свойство / значение не было завершено, поэтому элемент в настоящее время имеет это свойство / значение:
df
item property val propertyStartTime propertyEndTime
0 A x a 2019-03-31 17:45:54 2019-04-20 10:45:44
1 A x b 2019-04-20 10:45:54 2019-04-30 17:45:38
2 A x a 2019-04-30 17:45:54 NaT
3 A y c 2019-03-31 17:46:14 2019-04-30 23:59:38
4 A y d 2019-05-01 00:00:00 NaT
5 A z e 2019-03-31 17:46:33 NaT
В приведенном выше примере кадра данных элемент A в настоящее время имеет 3 свойства: x = a, y = d, z = e. Однако есть ли прямой путь, как я могу определить другие периоды времени в кадре данных? (возможно, с точностью до 5 минут).
Результирующие группы будут выглядеть примерно так на примере приведенного выше кадра данных:
From 2019-03-31 17:45:54 to 2019-04-20 10:45:44
grp1
item property val
0 A x a
3 A y c
5 A z e
From 2019-04-20 10:45:54 to 2019-04-30 17:45:38
grp2
item property val
1 A x b
3 A y c
5 A z e
From 2019-04-30 17:45:54 to 2019-04-30 23:59:38
grp3
item property val
2 A x a
3 A y c
5 A z e
And finally, from 2019-05-01 00:00:00 to now
grp4
item property val
2 A x a
4 A y d
5 A z e