Как сделать столбец по времени с условиями? В какой тип данных перевести, чтобы посчитать

Рейтинг: -1Ответов: 1Опубликовано: 27.05.2023

При расчете стоит 2 задачи:

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

Ответы

▲ 1

Я не совсем понял вопрос, но у вас в функции с первого фото явно несколько ошибок, вот исправленный вариант:

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
  1. вы почему то поменяли название переменной с sha_cons, которое использовалось в начале, на shaot_cons
  2. вы почему то не присваиваете переменной новое значение а проверяете-равно ли значение 2 или 1