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.
我在 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.