Pandas содержит следующие примеры хранения Series
, DataFrames
и Panels
в файлах HDF5:
Подготовьте некоторые данные:
In [1142]: store = HDFStore('store.h5')
In [1143]: index = date_range('1/1/2000', periods=8)
In [1144]: s = Series(randn(5), index=['a', 'b', 'c', 'd', 'e'])
In [1145]: df = DataFrame(randn(8, 3), index=index,
......: columns=['A', 'B', 'C'])
......:
In [1146]: wp = Panel(randn(2, 5, 4), items=['Item1', 'Item2'],
......: major_axis=date_range('1/1/2000', periods=5),
......: minor_axis=['A', 'B', 'C', 'D'])
......:
Сохраните его в хранилище:
In [1147]: store['s'] = s
In [1148]: store['df'] = df
In [1149]: store['wp'] = wp
Проверьте, что в магазине:
In [1150]: store
Out[1150]:
<class 'pandas.io.pytables.HDFStore'>
File path: store.h5
/df frame (shape->[8,3])
/s series (shape->[5])
/wp wide (shape->[2,5,4])
Закройте магазин:
In [1151]: store.close()
Вопросы:
-
В приведенном выше коде , когда данные фактически записаны на диск?
-
Скажем, я хочу добавить тысячи больших файлов данных, живущих в файлах
.csv
, в один файл.h5
. Мне нужно будет загрузить их и добавить их в файл.h5
один за другим, так как я не могу позволить себе их все в памяти сразу, так как они занимают слишком много памяти. Возможно ли это с HDF5? Каким будет правильный способ сделать это? -
Документация Pandas гласит следующее:
"Эти магазины не являются добавочными после написания (хотя вы просто удалить их и переписать). Они также не являются запросами; они должны быть полностью восстановлены".
Что это означает, что недоступен и не запрашивается? Кроме того, не следует ли говорить один раз закрытый вместо написанный?