You could use the total_seconds method:

time_d_float = time_d.total_seconds()

In Python 3.2 or higher, you can divide two timedeltas 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)