Как сделать столбец по времени с условиями? В какой тип данных перевести, чтобы посчитать
При расчете стоит 2 задачи:
- есть отдельный столбец "Время". Нужно посчитать по нему разницу. Например, от каждой даты нужно начинать сначала, те первая ноль, а дальше 1- предыдущая дата - это будет колонка время. Далее нужно посчитать накопительно этот столбец через cumsum. Сделала и функцию и потом через apply, но все равно выдает ошибки.
- По полученному накопительному шагу, нужно создать столбец с критериями, если накопительная сумма равна 7 минут, то 1, если <= 14 мин., то 2 и т. д. Здесь через where не получается, пишет для типа данных dt не работает.


Ответы (1 шт):
Автор решения: Step1709
→ Ссылка
Я не совсем понял вопрос, но у вас в функции с первого фото явно несколько ошибок, вот исправленный вариант:
def sd(s):
sha_cons = 0
if s['time_cumsum'] <= pd.to_datetime('00:07:00', format='%H:%M:%S').to_pydatetime().time():
sha_cons = 1
if s['time_cumsum'] <= pd.to_datetime('00:14:00', format='%H:%M:%S').to_pydatetime().time():
sha_cons = 2
return sha_cons
- вы почему то поменяли название переменной с sha_cons, которое использовалось в начале, на shaot_cons
- вы почему то не присваиваете переменной новое значение а проверяете-равно ли значение 2 или 1