簡體   English   中英

將timedelta轉換為浮點數

[英]Convert timedelta to floating-point

我從減去兩個日期時間得到了一個timedelta對象。 我需要將此值作為浮點進行進一步計算。 我發現的所有內容都可以使用浮點計算,但結果仍然是timedelta對象。

time_d = datetime_1 - datetime_2
time_d_float = float(time_d)

不起作用。

您可以使用total_seconds方法:

time_d_float = time_d.total_seconds()

在Python的最新版本中,您可以將兩個timedelta划分為一個浮點數。 如果您需要以秒為單位的值,則此選項非常有用。

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

你可以使用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)

希望它有用!

如果您需要將天數作為浮點數,則可以使用timedelta的days屬性

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

之前我遇到了同樣的問題,我使用timedelta.total_seconds將估計的持續時間變為秒,並使用浮點數並且它可以工作。 我希望這適合你。

from datetime import timedelta,datetime

time_d = datetime_1 - datetime_2

time_d.total_seconds()                  

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM