1

我在 pandas 中以 HDF5 格式存储时间序列数据,因为我希望能够直接访问磁盘上的数据,所以我在table=True写入时使用了 PyTable 格式。

看来我在将 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 无法存储或复制这些信息是否存在根本原因?或者这是一个可能的错误熊猫?

4

1 回答 1

2

刚刚从 pandas 确认,这在当前版本中没有实现。

有关解决方法,请参见:https ://github.com/pydata/pandas/issues/3499#issuecomment-17262905 。

当它可用时,我会更新这个答案。

于 2013-05-01T04:00:28.740 回答