Как столбец датафрейма из формата строки со временем ('hh:mm:ss') привести к типу целых чисел (например все перевести в минуты или секунды) на Python

Столкнулся со следующей проблемой: Мне нужно написать функцию, которая принимает на вход 3 значения: table(датафрейм, состоящий из 7 столбцов, одним из которых является столбец 'time', в котором записаны данные типа object, по факту это строка вида 'hh:mm:ss'), time1 (строка вида 'hh:mm'), time2(строка вида 'hh:mm'). Функция должна вернуть датафрейм, который получится из исходного путем сортировки по столбцу 'time'. Это означает что в новом датафрейме будут только те строки, в которых значения столбца 'time' удовлетворяют следующему условию: time1 <= time <= time2. Как привести данные time1, time, time2 к единому виду, чтобы фильтрацию можно было сделать с помощью логической индексации? Я понимаю каким образом можно перевести в минуты time1 и time2, но совсем не могу понять как быть со столбцом time (секунды можно отбросить и перевести все в минуты). Данную задачу скорее всего можно решить средствами обычного Python и модуля pandas, тк никаких особых модулей для работы со временем предварительно не изучалось.


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

Автор решения: MaxU

Строковые значения вида hh:mm:ss можно привести к типу данных timedelta и после этого получить общее число секунд:

df["seconds"] = pd.to_timedelta(df["time"]).dt.total_seconds()
→ Ссылка