首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >具有时代指标的HDFStore

具有时代指标的HDFStore
EN

Stack Overflow用户
提问于 2016-12-29 09:49:06
回答 1查看 84关注 0票数 1

我在HDFStore有熊猫的数据,索引作为划时代的时间存储。我想根据特定的索引读取数据和查询。

例如,如果我在datetime64ns中有索引而不是epoc,我可以获得如下结果:

代码语言:javascript
复制
starttime = datetime.datetime(2008,12,22,00,19,55,150000)

start = pd.Timestamp(stoptime) + pd.Timedelta(1)

stoptime = datetime.datetime(2008,12,22,00,55,55,180000)

stop = pd.Timestamp(starttime) + pd.Timedelta(1)

pd.read_hdf('file.h5',columns=['Data','Qty'],where='index > start & index < stop']

如果将HDFStore中的索引存储为划时代的时间,如何实现相同的结果?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-12-29 10:31:13

IIUC,您应该将您的startstop时间转换为纪元,以便能够执行查询。要做到这一点,你可以:

代码语言:javascript
复制
start_epoch = (start - datetime.datetime(1970,1,1)).total_seconds()
stop_epoch = (stop - datetime.datetime(1970,1,1)).total_seconds()

然后,您应该能够对它们执行查询。使用您的数据:

代码语言:javascript
复制
In [24]: (start - datetime.datetime(1970,1,1)).total_seconds()
Out[24]: 1229905195.15

In [27]: (stop - datetime.datetime(1970,1,1)).total_seconds()
Out[27]: 1229907355.18

编辑:更一般的问题。对于numpy datetime64对象,您可以首先将其转换为普通datetime

代码语言:javascript
复制
In [16]: abc = np.datetime64('2005-12-27 20:10:10.500400300', 'ns')

In [17]: a = pd.to_datetime(abc)

In [18]: a
Out[18]: Timestamp('2005-12-27 20:10:10.500400300')

然后您可以使用上述方法。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41377097

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档