У меня есть кадр данных в формате:
object_id start_time end_time
123 13:23 13:28
234 13:25 13:26
И я хочу преобразовать его в такой формат:
time number_of_objects_active
13:22 0
13:23 1
13:24 1
13:25 2
13:26 1
13:27 1
13:28 1
13:29 0
Где в каждой строке есть минута дняи подсчет количества объектов, которые были активны в этой точке (где активное означает, что время больше или равно времени начала и меньше времени окончания).
Я попытался найти какой-то способ сделатьгрупповой, но с треском провалились. Не очень хорошее решение состоит в том, чтобы циклически проходить каждую минуту дня, а затем суммировать количество строк, которые были активны в эту минуту:
results_dictionary = {}
for minute in minutes:
results_dictionary[minute] = df.loc[(df.start_time <= minute) & (df.end_time > minute)].shape[0]
, но я подозреваю, что есть более приятный способ для панд / питоновделает это.