如果我使用以下代码创建带有pandas的hdf5文件:
import pandas as pd
store = pd.HDFStore("store.h5")
for x in range(1000):
store["name"+str(x)] = pd.Series()
所有系列都是空的,为什么“store.h5”文件在hardrive上占用1.1GB空间?
答案 0 :(得分:2)
简短版:您发现了一个错误。引用this bug on GitHub:
...需要一点hackjob(pytables不像零长度的对象)
我可以在我的机器上重现此错误。只需将代码更改为:
import pandas as pd
store = pd.HDFStore("store.h5")
for x in range(1000):
store["name"+str(x)] = pd.Series([1,2])
生成一个合理的兆字节级文件。我在Github上找不到一个开放的bug;您可以尝试报告它。
我认为您已经在代码中处理了该问题,但如果您还没有,那么您应该检查以确保在存储对象之前没有数组维度为零:
toStore=pd.Series()
assert not np.prod( toStore.shape )==0, 'Tried to store an empty object!'