万圣节的熊猫和HDF让人感到尴尬:
df = pandas.DataFrame([['a','b'] for i in range(1,1000)])
store = pandas.HDFStore('test.h5')
store['x'] = df
store.close()
然后
ls -l test.h5
-rw-r--r-- 1 arthur arthur 1072080 Oct 26 10:50 test.h5
1.1M?有点陡峭但为什么不呢。这里的事情变得非常怪异
store = pandas.HDFStore('test.h5') #open it again
store['x'] = df #do the same thing as before!
store.close()
然后
ls -l test.h5
-rw-r--r-- 1 arthur arthur 2122768 Oct 26 10:52 test.h5
您现在已进入Twilight区域。毋庸置疑,商店在操作后无法区分,但每次迭代都会使文件更加肥胖。
似乎只有在涉及到字符串时才会发生。 在我提交错误报告之前,我想知道我是否在这里遗漏了一些东西......
答案 0 :(得分:4)
似乎可能是原因:http://www.hdfgroup.org/hdf5-quest.html#del
这是一个很大的问题HDF5,wtf。
答案 1 :(得分:4)
是的:“HDF5不是数据库”。人们经常使用ptrepack(PyTables的一部分)来“重新包装”HDF5文件而没有任何死字节。