(В Pandas) Почему теряется информация о частоте при сохранении в HDF5 в виде таблицы?

Я храню данные таймсерий в формате HDF5 в пандах. Поскольку я хочу иметь доступ к данным непосредственно на диске, я использую формат 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 не может хранить или воспроизводить эту информацию? Или это возможный баг панды?


person Rocketman    schedule 01.05.2013    source источник


Ответы (1)


Только что подтвердил от pandas, что это не реализовано в текущем выпуске.

См. https://github.com/pydata/pandas/issues/3499#issuecomment-17262905, чтобы обойти эту проблему.

Я обновлю этот ответ, когда он станет доступен.

person Rocketman    schedule 01.05.2013
comment
Похоже, что эта ошибка уже решена в pandas 0.11.1, а теперь мы исправили 0.13.1 ... - person prl900; 13.03.2014