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.colindexes
和 storer.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 文件
我使用 Pandas 创建了一个大型索引 HDF5 table。我想重命名 table 中 12 列中的 2 列。我宁愿不 rebuild/reindex table.
是否可以在不复制所有数据 (140GB) 的情况下完成此操作?我希望文件中只有几段元数据可以使用正确的命令轻松换出。
这是我想到的,因为我有几个 "non-natural" 列名称中有空格,直到尝试 运行 a select 才意识到这是一个问题声明。
恐怕目前无法重命名索引(属于 data_columns
)列,因为这需要对 storer.table.colindexes
和 storer.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 文件