Воронкер, второй эдикт.

Было решено принимать следующие данные: Датафрейм, диапазон дат, перечень событий списком, атрибут для агрегации и окно конверсии.

Поехали коротко по ходу моих мыслей. 1. Проверяем входные данные 2. Фильтруем по временному диапазону 3. Создаём пустую таблицу для итогового результата 4. Идём циклом 4.1. Ищем событие старта i для списка. Если шаг первый то забираем из исходной таблицы, если шаг более чем первый- берём из таблицы из пункта 3. Забираем во временную таблицу. 4.2. Ищем событие i+1. Забираем во временную таблицу. 4.3. Для события i удаляем все пропуски, чтобы в воронку попали только цельные цепочки 4.4. Ищем соответствующие события с помощью merge_asof по таблицам из 4.1. и 4.2. учитывая окно конверсии. 4.5. Проходим все события из перечня, получаем готовую user-friendly  табличку 5. Считаем время между шагами. 6. Считаем метрики 7. Готово.

Воронкер, второй эдикт. | Сетка — социальная сеть от hh.ru