J'ai eu un objet timedelta de la soustraction de deux dates-heures. J'ai besoin de cette valeur en tant que virgule flottante pour des calculs ultérieurs . Tout ce que j'ai trouvé permet le calcul avec des points flottants, mais le résultat est toujours un objet timedelta.
time_d = datetime_1 - datetime_2
time_d_float = float(time_d)
ne marche pas.
Vous pouvez utiliser la méthode total_seconds
:
time_d_float = time_d.total_seconds()
Dans les versions récentes de Python, vous pouvez diviser deux timedelta
s pour donner un float. Ceci est utile si vous avez besoin que la valeur soit en unités autres que secondes.
time_d_min = time_d / datetime.timedelta(minutes=1)
time_d_ms = time_d / datetime.timedelta(milliseconds=1)
Vous pouvez utiliser numpy pour résoudre ce problème:
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)
J'espère que c'est utile!
Si vous aviez besoin du nombre de jours sous forme de nombre flottant, vous pouvez utiliser l'attribut days de timedelta.
time_d = datetime_1 - datetime_2
number_of_days = float(time_d.days)