Timedelta 时间差表示为 float 变量

Timedelta time difference expressed as float variable

我在 pandas 数据框中有数据,这些数据由时间戳标记为日期时间对象。我想制作一个图表,将时间视为一种流动的东西。我的想法是从其他时间戳中减去第一个时间戳(这里是第二个条目的示例)

xhertz_df.loc[1]['Dates']-xhertz_df.loc[0]['Dates']

获取自第一次测量以来经过的时间。这给出了 350 days 08:27:51 作为 timedelta 对象。到目前为止一切顺利。

这可能是重复的,但到目前为止我还没有在这里找到解决方案。有没有办法快速将此对象转换为多个,例如分钟或秒或小时。我知道我可以提取个别的天数、小时数和分钟数,然后进行繁琐的计算来得到它。但是有没有一种集成的方法可以将这个对象变成我想要的东西?

类似

timedelta.tominutes

如果能以分钟的浮动形式返回,那就太好了。

这里有一种使用“时间戳”的方法:

两个转换示例和一个差异示例

import datetime as dt
import time
# current date and time
now = dt.datetime.now()

timestamp1 = dt.datetime.timestamp(now)
print("timestamp1 =", timestamp1)
time.sleep(4)
now = dt.datetime.now()
timestamp2 = dt.datetime.timestamp(now)
print("timestamp2 =", timestamp2)
print(timestamp2 - timestamp1)

如果你想要的只是一个浮点数表示,可能就像这样简单:

float_index = pd.Index(xhertz_df.loc['Dates'].values.astype(float))                                                           

在 Pandas 中,Timestamp 和 Timedelta 列在内部处理为 numpy datetime64[ns],即纳秒的整数。

因此将 Timedelta 列转换为分钟数很简单:

(xhertz_df.loc[1]['Dates']-xhertz_df.loc[0]['Dates']).astype('int64')/60000000000.