Добавление часов в столбец времени PolarsPython

Программы на Python
Anonymous
 Добавление часов в столбец времени Polars

Сообщение Anonymous »

У меня есть таблица, представляющая расписание, т. е. она содержит поля дня (понедельник-воскресенье), start_time и end_time

Код: Выделить всё

df = pl.DataFrame({
"day": ["monday", "tuesday", "wednesday", "thursday", "friday", "saturday", "sunday"],
"enabled": [True, True, True, True, True, False, False],
"start_time": ["09:00", "09:00", "09:00", "09:00", "09:00", "00:00", "00:00"],
"end_time": ["18:00", "18:00", "18:00", "18:00", "18:00", "00:00", "00:00"],
})

df = df.with_columns(start_time = pl.col("start_time").str.to_time("%H:%M"))
df = df.with_columns(end_time = pl.col("end_time").str.to_time("%H:%M"))

print(df)

Код: Выделить всё

shape: (7, 4)
┌───────────┬─────────┬────────────┬──────────┐
│ day       ┆ enabled ┆ start_time ┆ end_time │
│ ---       ┆ ---     ┆ ---        ┆ ---      │
│ str       ┆ bool    ┆ time       ┆ time     │
╞═══════════╪═════════╪════════════╪══════════╡
│ monday    ┆ true    ┆ 09:00:00   ┆ 18:00:00 │
│ tuesday   ┆ true    ┆ 09:00:00   ┆ 18:00:00 │
│ wednesday ┆ true    ┆ 09:00:00   ┆ 18:00:00 │
│ thursday  ┆ true    ┆ 09:00:00   ┆ 18:00:00 │
│ friday    ┆ true    ┆ 09:00:00   ┆ 18:00:00 │
│ saturday  ┆ false   ┆ 00:00:00   ┆ 00:00:00 │
│ sunday    ┆ false   ┆ 00:00:00   ┆ 00:00:00 │
└───────────┴─────────┴────────────┴──────────┘
Мне нужно вычесть n часов из start_time и добавить n часов к end_time. Я не могу найти полярную операцию для добавления/вычитания часов из pl.time. Я пробовал добавить pl.duration, но, похоже, это работает только для даты и даты и времени.
Я предположил, что один из обходных путей — превратить start_time/end_time в pl.datetime (т. е. использовать некоторую постоянную дату), выполнить операцию, а затем разложить результат возвращается во времени. У этого есть один вариант, который проще гарантировать, что я не переполняю/не пропускаю (т. е. вычитаю 2 часа из 01:00 и получаю 23:00), но мне интересно, можно ли добавлять/вычитать часы/минуты ко времени в полярах?

Подробнее здесь: https://stackoverflow.com/questions/794 ... ime-column

Вернуться в «Python»