У меня есть Panadas DataFrame, содержащий измерения (Val) различных операций (OpID) с отметкой времени, когда произошло измерение (OpTime).pandas - определить продолжительность события
OpID OpTime Val
143 2014-01-01 02:35:02 20
143 2014-01-01 02:40:01 24
143 2014-01-01 02:40:03 0
143 2014-01-01 02:45:01 0
143 2014-01-01 02:50:01 20
143 2014-01-01 02:55:01 0
143 2014-01-01 03:00:01 20
143 2014-01-01 03:05:01 24
143 2014-01-01 03:10:01 20
212 2014-01-01 02:15:01 20
212 2014-01-01 02:17:02 0
212 2014-01-01 02:20:01 0
212 2014-01-01 02:25:01 0
212 2014-01-01 02:30:01 20
299 2014-01-01 03:30:03 33
299 2014-01-01 03:35:02 33
299 2014-01-01 03:40:01 34
299 2014-01-01 03:45:01 33
299 2014-01-01 03:45:02 34
Мое желание генерировать вывод, который показывает только периоды времени, в течение которых измерение возвращало ноль. В столбце «Начало» будет показан первый в серии OpTimes, который привел бы к нулю, а End будет содержать OpTime первого Val, который был отличным от нуля.
Учитывая приведенные выше данные примеры мой желаемый результат:
OpID Start End
143 2014-01-01 02:40:03 2014-01-01 02:50:01
143 2014-01-01 02:55:01 2014-01-01 03:00:01
212 2014-01-01 02:17:02 2014-01-01 02:30:01
Что делать, если последнее измерение в группе равна нулю? – DSM
В идеале результат будет включать строку для этого либо с нулевым, NaN, либо с OpTime в столбце End. Я бы рассматривал этот случай как «дополнительный кредит», хотя для моих текущих потребностей правильный ответ не требовал бы обработки этого дела. –