У меня есть pandas массив данных с отрицательными числами и нулями, с указателем даты и времени.
Я хотел бы иметь возможность: (1) определить начало и конечную дату для непоследовательных, ненулевых значений; (2) количество дней между этими двумя датами; (3) минимальное значение между этими двумя датами
Например, если мой фрейм данных выглядит следующим образом:
DATE VAL
2007-06-26 0.000000
2007-06-27 0.000000
2007-06-28 0.000000
2007-06-29 -0.006408
2007-07-02 0.000000
2007-07-03 0.000000
2007-07-04 -0.000003
2007-07-05 0.000000
2007-07-06 0.000000
2007-07-09 0.000000
2007-07-10 -0.018858
2007-07-11 -0.015624
2007-07-12 0.000000
2007-07-13 0.000000
2007-07-16 -0.008562
2007-07-17 -0.006587
Я хотел бы вывод, который выглядит примерно так:
START END DAYS MIN
2007-06-29 2007-06-29 1 -0.006408
2007-07-04 2007-07-04 1 -0.000003
2007-07-10 2007-07-11 2 -0.018858
2007-07-16 2007-07-17 2 -0.008562
Было бы предпочтительно, если бы количество дней исключало выходные (ie, с 7/13 по 7/16 считается за 1 день), но я понимаю, что это обычно сложно.
Кажется, что метод numpy.argmax/min
делает версию того, что я хотел бы, но установка axis=1
для документации не вернула коллекцию значений индекса, которые я ожидал.
Редактировать : Должен был указать, искать решение, которое не требует циклов.