如何更改pandas hdfstore中所有列的字符串列大小?

时间:2013-11-27 03:46:01

标签: pandas

如何在hdf5表中更改所有字符串列的min_itemsize?我不知道我在运行时的数据帧结构,因此无法对其进行硬编码。

1 个答案:

答案 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()