python/pandas - Вхождение во временной интервал

Имеется заведение, которое работает круглосуточно. В датафрейме имеется информация о том, во сколько клиент посещал заведение (например, с 07:30 до 09:05) (два столбца, когда пришел и когда ушел). Таких строк более 10тыс.

При этом, руководство хочет знать, сколько % от общего количества людей приходится на самое загруженное время заведения? (с 9:00 до 11:00).

Хочу получить количество минут для каждой строки, которая входит в этот указанный интервал, но не понимаю, как это можно реализовать. Например, в примере выше, это были бы только 5 минут (4,16% входит в целевой интервал времени).


Ответы (1 шт):

Автор решения: Sergey
  1. Просматриваем все строки и удаляем те, в которых ни начало ни конец не попадают в интервал 9:00 - 11:00
  2. Просматриваем все оставшиеся строки и анализируем начало и конец:
  3. Если начало раньше 9:00 -> сдвигаем до девяти
  4. Если конец позже 11:00 -> сдвигаем на 11
  5. В каждой строке вычисляем разность - получаем время пребывания.

Но зачем Вам это нужно?! На вопрос начальства это ответить не поможет. Ответ на этот вопрос даёт просто количество строк, оставшихся в датафрейме после 1. И всё...

→ Ссылка