在Python中将hyerarchical pandas DatetimeIndex保存到hdf5时会丢失时区意识

2024-06-26 03:11:03 发布

您现在位置:Python中文网/ 问答频道 /正文

我用的是熊猫0.14.1。假设我需要使用时区在分层索引中按两个时间戳索引数据。当将结果数据帧保存到hdf5时,我似乎失去了时区意识:

import pandas as pd
dti1 = pd.DatetimeIndex(start=pd.Timestamp('20000101'), end=pd.Timestamp('20000102'), freq='D', tz='EST5EDT')
dti2 = pd.DatetimeIndex(start=pd.Timestamp('20000102'), end=pd.Timestamp('20000103'), freq='D', tz='EST5EDT')
mux = pd.MultiIndex.from_arrays([dti1, dti2])
df = pd.DataFrame(0, index=mux, columns=['a'])

{cd1>这里有时区:

^{pr2}$

保存并加载到hdf5后,时区信息似乎消失:

df.to_hdf('/tmp/my.h5', 'data')
pd.read_hdf('/tmp/my.h5', 'data')

结果:

                                         a
2000-01-01 05:00:00 2000-01-02 05:00:00  0
2000-01-02 05:00:00 2000-01-03 05:00:00  0

我想知道是否有一个好的解决办法,这是否是一个已知的错误。在


Tags: 数据dfstarttimestamptzendhdf5pd
1条回答
网友
1楼 · 发布于 2024-06-26 03:11:03

使用多索引时,fixed格式不支持此操作。我想应该是应该提高而不是实施我的设想。以下是跟踪this的问题

请参阅full-hdf5-interface docshere

In [11]: pd.read_hdf('/tmp/my.h5', 'data').index.levels[0]
Out[11]: 
<class 'pandas.tseries.index.DatetimeIndex'>
[2000-01-01 05:00:00, 2000-01-02 05:00:00]
Length: 2, Freq: None, Timezone: None

但是如果指定table格式,它就可以工作了。在

^{pr2}$

相关问题 更多 >