У меня есть фрейм данных:
id timestamp value start
31833 32074 2012-01-06 15:20:09.830 45.0 0
31834 32075 2012-01-06 15:20:09.930 45.5 1
31835 32076 2012-01-06 15:20:18.833 25.0 0
...
50000 32076 2012-12-27 15:20:18.833 15.0 1
50000 32076 2012-12-28 22:12:18.833 15.0 0
50000 32076 2012-12-29 23:00:18.833 15.0 0
start
- фиктивная переменная, принимающая 0
или 1
и не находящаяся через регулярные интервалы (поступающие через случайные интервалы) в фрейме данных. Как я могу сгруппировать данные в поднаборы данных, которые начинаются с start ==1
до непосредственно перед следующим start ==1
, чтобы я мог рассчитать среднее значение value
в каждом поднаборе данных?
Какие методы я могу использовать для достижения этой цели? Должен ли я использовать какое-то время l oop? Я не делал ничего подобного раньше, просто хочу несколько идей. Thx
Ожидаемый результат:
id timestamp_when_start=1 last_timestamp_in_subdataset average
31833 32074 2012-01-06 15:20:09.830 2012-01-06 15:20:09.830 40
31834 32075 2012-01-06 15:20:09.930 2012-01-06 15:20:09.930 35
31835 32076 2012-01-06 15:20:18.833 2012-01-06 15:20:18.833 35
31836 32077 2012-01-06 15:20:20.835 2012-01-06 15:20:20.835 35
...
или
id timestamp value start average
31833 32074 2012-01-06 15:20:09.830 45.0 0 40
31834 32075 2012-01-06 15:20:09.930 45.5 1 35
31835 32076 2012-01-06 15:20:18.833 25.0 0 35
31836 32077 2012-01-06 15:20:20.835 38.0 0 35
...