python - example - Convertir timedelta en punto flotante
timedelta python (5)
Obtuve un objeto timedelta de la resta de dos fechas. Necesito este valor como punto flotante para realizar más cálculos. Todo lo que he encontrado habilita el cálculo con puntos flotantes, pero el resultado sigue siendo un objeto timedelta.
time_d = datetime_1 - datetime_2
time_d_float = float(time_d)
No funciona.
En versiones recientes de Python, puede dividir dos timedelta
para dar un flotador. Esto es útil si necesita que el valor esté en unidades que no sean segundos.
time_d_min = time_d / datetime.timedelta(minutes=1)
time_d_ms = time_d / datetime.timedelta(milliseconds=1)
Puede usar el método total_seconds
:
time_d_float = time_d.total_seconds()
Puedes usar numpy para resolver eso:
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)
Espero que sea útil!
Si necesita el número de días como número flotante, puede usar el atributo de días de timedelta
time_d = datetime_1 - datetime_2
number_of_days = float(time_d.days)
Tuve el mismo problema antes y utilicé timedelta.total_seconds para obtener la duración estimada en segundos con float y funciona. Espero que esto funcione para ti.
from datetime import timedelta,datetime
time_d = datetime_1 - datetime_2
time_d.total_seconds()