I got a timedelta object from the subtraction of two datetimes. I need this value as floating point for further calculations. All that I've found enables the calculation with floating-points, but the result is still a timedelta object.
time_d = datetime_1 - datetime_2
time_d_float = float(time_d)
does not work.
您可以使用total_seconds
方法:
time_d_float = time_d.total_seconds()
In recent versions of Python, you can divide two timedelta
s to give a float. This is useful if you need the value to be in units other than seconds.
time_d_min = time_d / datetime.timedelta(minutes=1)
time_d_ms = time_d / datetime.timedelta(milliseconds=1)
You could use numpy to solve that:
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)
Hope it is helpful!
If you needed the number of days as a floating number you can use timedelta's days attribute
time_d = datetime_1 - datetime_2
number_of_days = float(time_d.days)
I had the same problem before and I used timedelta.total_seconds to get Estimated duration into seconds with float and it works. I hope this works for you.
from datetime import timedelta,datetime
time_d = datetime_1 - datetime_2
time_d.total_seconds()
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.