it-swarm.com.ru

Конвертировать timedelta в число с плавающей точкой

Я получил объект timedelta из вычитания двух datetime. Мне нужно это значение в качестве числа с плавающей запятой для дальнейших вычислений . Все, что я нашел, позволяет выполнять вычисления с плавающей запятой, но результат все еще является объектом timedelta.

time_d = datetime_1 - datetime_2
time_d_float = float(time_d)

не работает.

36
fidelitas

Вы можете использовать метод total_seconds :

time_d_float = time_d.total_seconds()
51
unutbu

В последних версиях Python вы можете разделить две переменные timedelta, чтобы получить число с плавающей запятой. Это полезно, если вам нужно, чтобы значение было в единицах, отличных от секунд.

time_d_min = time_d / datetime.timedelta(minutes=1)
time_d_ms  = time_d / datetime.timedelta(milliseconds=1)
13
dan04

Вы можете использовать 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)

Надеюсь, это полезно!

2
Monique Marins

Если вам нужно было число дней в виде плавающего числа, вы можете использовать атрибут дней timedelta

time_d = datetime_1 - datetime_2
number_of_days = float(time_d.days)
0
RoachLord