我将时间序列数据以HDF5格式存储在pandas中,因为我希望能够直接在磁盘上访问数据,所以我在编写时使用PyTable格式table=True
。
在将我的TimeSeries对象写入HDF5之后,我似乎将其频率信息丢失了。
通过在下面的脚本中切换is_table
值可以看出这一点:
import pandas as pd
is_table = False
times = pd.date_range('2000-1-1', periods=3, freq='H')
series = pd.Series(xrange(3), index=times)
print 'frequency before =', series.index.freq
frame = pd.DataFrame(series)
with pd.get_store('data/simple.h5') as store:
store.put('data', frame, table=is_table)
with pd.get_store('data/simple.h5') as store:
x = store['data']
print 'frequency after =', x[0].index.freq
is_table = False
:
frequency before = <1 Hour>
frequency after = <1 Hour>
is_table = True
:
frequency before = <1 Hour>
frequency after = None
在我看来,PyTables提供了更丰富的存储机制,但事实并非如此。
PyTables无法存储或复制此信息的根本原因是什么?或者这是一个可能的小熊猫吗?
答案 0 :(得分:2)
刚从熊猫那里证实,这在当前版本中没有实现。
请参阅:https://github.com/pydata/pandas/issues/3499#issuecomment-17262905了解解决方法。
我会在答案可用时更新。