HDF5:有没有办法重命名现有 HDF5 table 中的列名称?

HDF5: Is there a way to rename the column names in an existing HDF5 table?

我使用 Pandas 创建了一个大型索引 HDF5 table。我想重命名 table 中 12 列中的 2 列。我宁愿不 rebuild/reindex table.

是否可以在不复制所有数据 (140GB) 的情况下完成此操作?我希望文件中只有几段元数据可以使用正确的命令轻松换出。

这是我想到的,因为我有几个 "non-natural" 列名称中有空格,直到尝试 运行 a select 才意识到这是一个问题声明。

恐怕目前无法重命名索引(属于 data_columns)列,因为这需要对 storer.table.colindexesstorer.table.description 对象以及两者进行更改它们属于特定类型:

In [29]: store.get_storer('df').table
Out[29]:
/df/table (Table(10,)) ''
  description := {
  "index": Int64Col(shape=(), dflt=0, pos=0),
  "a": Int32Col(shape=(), dflt=0, pos=1),
  "b": Int32Col(shape=(), dflt=0, pos=2),
  "c": Int32Col(shape=(), dflt=0, pos=3)}
  byteorder := 'little'
  chunkshape := (3276,)
  autoindex := True
  colindexes := {
    "a": Index(6, medium, shuffle, zlib(1)).is_csi=False,
    "index": Index(6, medium, shuffle, zlib(1)).is_csi=False,
    "c": Index(6, medium, shuffle, zlib(1)).is_csi=False,
    "b": Index(6, medium, shuffle, zlib(1)).is_csi=False}

In [30]: type(store.get_storer('df').table.colindexes)
Out[30]: tables.table._ColIndexes

In [31]: type(store.get_storer('df').table.description)
Out[31]: tables.description.Description

如果您尝试 google PyTables 解决方案,您会发现这个问题,但是 was/is 没有允许您重命名列的答案。

所以您可能想要重新创建 HDF5 文件