У меня есть кадр данных, подобный следующему (приведенные ниже данные упрощены, чтобы предоставить минимальный пример):
df =
item state startTime endTime
A 1 2019-05-01 04:30:00 2019-05-02 04:30:00
A 1 2019-05-02 04:30:00 2019-05-04 04:30:00
A 1 2019-05-04 04:30:00 2019-05-10 04:30:00
A 2 2019-05-10 04:30:00 2019-05-12 04:30:00
A 2 2019-05-12 04:30:00 2019-05-13 04:30:00
A 1 2019-05-13 04:30:00 2019-05-25 04:30:00
Где элемент A находится в состоянии 1 с 2019-05-01 04:30:00 до2019-05-10 04:30:00, затем в состоянии 2 с 2019-05-10 с 04:30:00 до 2019-05-13 04:30:00, затем обратно в состояние 1 с 2019-05-13 04: С 30:00 до 2019-05-25 04: 30: 00.
Я пытаюсь упростить фрейм данных, чтобы иметь только 3 строки, которые предоставляют одну и ту же информацию, используя startTime из первого вхождения состоянияи затем endTime для последнего появления этого состояния перед переключением в новое состояние.
Вот результат, к которому я стремлюсь:
df =
item state startTime endTime
A 1 2019-05-01 04:30:00 2019-05-10 04:30:00
A 2 2019-05-10 04:30:00 2019-05-13 04:30:00
A 1 2019-05-13 04:30:00 2019-05-25 04:30:00
Фактический фрейм данных, которым я манипулирую, может иметь длину в несколько тысяч строк, и поэтому я надеюсь, что смогу выполнить эту операциюбыстро.Надеялся, что кто-нибудь может направить меня в правильном направлении или предложить операции с пандами, которые я ищу?Я не новичок в пандах, но понятия не имею, как к этому подойти и хотел бы не изобретать колесо здесь ...
Заранее благодарен за любую помощь.