将 timedelta 转换为浮点数

我从两个日期时间的减法中得到了一个时间差对象。我需要这个值作为进一步计算的浮点数。 我所发现的一切都支持浮点运算,但是结果 仍然是一个时间差对象。

time_d = datetime_1 - datetime_2
time_d_float = float(time_d)

不起作用。

97895 次浏览

你可以使用 total_seconds方法:

time_d_float = time_d.total_seconds()

在 Python 3.2 或更高版本中,可以除以两个 timedeltas 来得到浮点数。如果需要以秒以外的单位表示该值,则此选项非常有用。

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

我以前也遇到过同样的问题,我使用 timedelta.total _ second 来使用 float 将整个估计的持续时间变成秒数,这个方法很有效。 我希望这对你有用。

from datetime import timedelta,datetime


time_d = datetime_1 - datetime_2


time_d.total_seconds()

如果需要将天数作为一个浮动数字,则可以使用 timedelta 的 days 属性

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

你可以用 麻木不仁来解决这个问题:

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)

希望对你有帮助!

from datetime import timedelta,datetime
x1= timedelta(seconds=40, minutes=40, hours=5)
x2= timedelta( seconds=50, minutes=20, hours=4)
x3=x1-x2
x5 = x3.total_seconds()
print(x5)
print(type(x5))
print(type(x1))
print(x1)


# if you are working with Dataframe then use loop (* for-loop).