Python 使用熊猫创建、读取和更新hdf5文件结构
我们希望能够允许HDF5文件本身定义它们的列、索引和列类型,而不是维护定义HDF5数据结构的单独文件 如何从具有以下特定表结构的熊猫创建空HDF5文件: 纵队Python 使用熊猫创建、读取和更新hdf5文件结构,python,pandas,hdf5,pytables,Python,Pandas,Hdf5,Pytables,我们希望能够允许HDF5文件本身定义它们的列、索引和列类型,而不是维护定义HDF5数据结构的单独文件 如何从具有以下特定表结构的熊猫创建空HDF5文件: 纵队 id(Int) 姓名(Str) 更新日期(日期时间) 一些浮点数(浮点数) 索引 身份证 名字 创建HDF5并将其保存到磁盘后,如何检索列和索引信息而不必每次完全打开该文件,因为它可能包含数GB的数据 非常感谢 --更新-- 谢谢你的评论。再澄清一下: 我们确实有一些熊猫方面的经验,但决不是真正精通。让我们绊倒的部分是创建一个空的
- id(Int)
- 姓名(Str)
- 更新日期(日期时间)
- 一些浮点数(浮点数)
- 身份证
- 名字
很明显,我愿意接受其他建议。也可以将表结构信息存储在用户块中。这也是不理想的,因为结构现在保存在两个不同的区域中,但我想在保存时总是可以使用帧的最新列和索引信息来更新用户块,尽管我相信熊猫中的to_*操作会吹走用户块,所以…诸如此类。我觉得我是在说服自己维护对等结构定义,但我真的希望得到一些不必这么做的建议。你读过HDF5上的吗?他们很彻底。您将特别希望查看
表
格式。您不能创建一个完全空的文件(这需要一个增强来实现);第一次使用时创建它。您无需读取文件即可查看结构。@Jeff拥有它,您无需读取几GB(不是千兆位)的数据即可浏览结构。根据上面的文档,它使用PyTables与hdf文件接口。我已经用了很多hdf的,可以建议,易于使用和结构来作为一个字典。在我的实例中,PyTables的性能非常糟糕,使用h5py可能快5倍。@PlaidFan我不认为这是一个奇怪的情况。但一般来说,在不存在的索引上定义数据类型是非常棘手的。不能创建空的HDF结构。正如我所说,这是可以做到的,但有点不平凡。也许以数据为例说明你想要什么。回答你的第一个问题。HDF5维护自己的元数据;您不需要任何其他东西来查找和提取数据。但是,您不能在设置后更改它;尽管您可以删除/复制节点,然后重新开始。不应将HDF5视为标准数据库。它的附加和阅读速度惊人地快。更新/删除的效率不高。