如何在hdf5表中更改所有字符串列的min_itemsize?我不知道我在运行时的数据帧结构,因此无法对其进行硬编码。
答案 0 :(得分:3)
查看文档here。
itemize是在第一个附加处创建的(以后不能更改)。如果min_itemsize
未指定它将是该追加中字符串的最大长度。
In [1]: df = DataFrame({ 'A' : ['foo','bar']})
In [2]: store = pd.HDFStore('test.h5',mode='w')
In [3]: store.append('df',df,min_itemsize=30)
In [4]: store.get_storer('df')
Out[4]: frame_table (typ->appendable,nrows->2,ncols->1,indexers->[index])
In [5]: store.get_storer('df').table
Out[5]:
/df/table (Table(2,)) ''
description := {
"index": Int64Col(shape=(), dflt=0, pos=0),
"values_block_0": StringCol(itemsize=30, shape=(1,), dflt='', pos=1)}
byteorder := 'little'
chunkshape := (1724,)
autoindex := True
colindexes := {
"index": Index(6, medium, shuffle, zlib(1)).is_csi=False}
In [8]: store['df']
Out[8]:
A
0 foo
1 bar
In [6]: store.close()