Преобразование timedelta в плавающую точку

Я получил объект timedelta из вычитания двух дат. Мне нужно это значение как плавающая точка для дальнейших вычислений. Все, что я нашел, позволяет вычислять с помощью плавающих точек, но результат все равно является объектом timedelta.

time_d = datetime_1 - datetime_2 time_d_float = float(time_d) 

не работает.

Вы можете использовать метод total_seconds :

 time_d_float = time_d.total_seconds() 

В последних версиях Python вы можете разделить два timedelta s, чтобы дать поплавок. Это полезно, если вам нужно, чтобы значение находилось в единицах, отличных от секунд.

 time_d_min = time_d / datetime.timedelta(minutes=1) time_d_ms = time_d / datetime.timedelta(milliseconds=1) 

Если вам нужно количество дней в качестве плавающего числа, вы можете использовать атрибут timedelta's days

 time_d = datetime_1 - datetime_2 number_of_days = float(time_d.days) 

Вы можете использовать numpy для решения этой проблемы:

 time_d = datetime_1 - datetime_2 number_of_days = time_d.apply(np.float32) 

Надеюсь, это полезно!

Раньше у меня была такая же проблема, и я использовал timedelta.total_seconds, чтобы получить расчетную продолжительность в секундах с помощью float, и она работает. Надеюсь, это сработает для вас.

 from datetime import timedelta,datetime time_d = datetime_1 - datetime_2 time_d.total_seconds()