Ответ 1
Вы можете использовать метод total_seconds
:
time_d_float = time_d.total_seconds()
Я получил объект timedelta из вычитания двух дат. Мне нужно это значение как плавающая точка для дальнейших вычислений. Все, что я нашел, позволяет вычислять с помощью плавающих точек, но результат все еще является объектом timedelta.
time_d = datetime_1 - datetime_2
time_d_float = float(time_d)
не работает.
Вы можете использовать метод total_seconds
:
time_d_float = time_d.total_seconds()
В Python 3.2 или выше вы можете разделить два timedelta
, чтобы получить число с плавающей точкой. Это полезно, если вам нужно, чтобы значение было в единицах, отличных от секунд.
time_d_min = time_d / datetime.timedelta(minutes=1)
time_d_ms = time_d / datetime.timedelta(milliseconds=1)
Вы можете использовать numpy, чтобы решить эту проблему:
import pandas as pd
import numpy as np
time_d = datetime_1 - datetime_2
#for a single value
number_of_days =pd.DataFrame([time_d]).apply(np.float32)
#for a Dataframe
number_of_days = time_d.apply(np.float32)
Надеюсь, это полезно!
Если вам нужно количество дней в качестве плавающего числа, вы можете использовать атрибут timedelta days
time_d = datetime_1 - datetime_2
number_of_days = float(time_d.days)
У меня была такая же проблема, и я использовал timedelta.total_seconds, чтобы получить расчетную продолжительность в секундах с помощью float, и она работает. Надеюсь, это сработает для вас.
from datetime import timedelta,datetime
time_d = datetime_1 - datetime_2
time_d.total_seconds()