Pandas有以下示例说明如何在 HDF5 文件中存储Series
,DataFrames
和:Panels
准备一些数据:
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 文档说明如下:
“这些存储一旦写入就不可追加(尽管您只需将它们删除并重写)。它们也不可查询;它们必须全部检索。”
不可附加也不可查询是什么意思?另外,它不应该说一次关闭而不是写吗?