所以我试图将Pandas DataFrames存储在HDF5中并获得奇怪的错误,而不是一致的。至少有一半的时间,读取 - 处理 - 移动 - 写入周期的某些部分失败,通常没有比“HDF5读取错误”更清楚的解释。更糟糕的是,有时候表格最终会产生无意义/损坏的数据,这些数据不会在下游之前停止 - 要么是数量级关闭(甚至与正确的值无关),要么是没有意义的日期(最近的数据被标记为在1750年代过时......等等。)
我以为我会经历当前的流程,然后我怀疑可能导致问题的事情可能有所帮助。这是它的样子:
我怀疑的一些事情可能是问题的一部分:
使用默认格式(df.to_hdf(store, key)
)而不是坚持使用df.to_hdf(store, key, format='table')
的“表格”格式。我这样做是因为根据%timeit,读取和写入的默认格式都要快2到5倍
使用网络驱动器允许多个用户运行此例程并至少访问派生的帧。关于这个要求,我无能为力,特别是对于随时对派生数据帧的读访问。
从文档中,听起来像在HDF5商店中反复删除和重写项目可以做奇怪的事情(至少逐渐增加文件大小,不知道还有什么)。也许我应该将查询存档存储在另一个文件中?也许我应该在更新后更换整个主文件?
首先在HDF5中使用MultiIndex列存储数据帧 - 这似乎是默认格式下的“警告”,尽管如果我使用{{1}似乎警告就会消失}。
编辑:运行上述例程的不同用户也可能/可能使用不同版本的Pandas和不同版本的PyTable。
有什么想法吗?