难以在HDF5表数据中获取多个列

时间:2019-09-20 14:08:47

标签: python pandas numpy hdf5

我是hdf5的新手,并试图将DataFrame行存储为hdf5格式。我要在文件中的不同位置附加一行;但是,每次附加时,它都会显示在单列中的数组中,而不是显示在多列中的单个值中。

我已经尝试了h5py和pandas,看来pandas是附加的更好选择。另外,我确实尝试了很多不同的方法。的确,任何帮助将不胜感激。

这是我多次将数组发送到hdf5文件中。


import pandas as pd
import numpy as np
data = np.zeros((1,48), dtype = float)

columnName = ['Hello'+str(y) for (x,y), item in np.ndenumerate(data)]
df = pd.DataFrame(data = data, columns =columnName)

file = pd.HDFStore('file.hdf5', mode = 'a', complevel = 9, comlib = 'blosc')
for x in range(0,11):
    file.put('/data', df, column_data = columnName , append = True, format = 'table')

1 个答案:

答案 0 :(得分:0)

In [243]: store = pd.HDFStore('test.h5')                                               

这似乎很好:

In [247]: store.put('foo',df,append=True,format='table')                               
In [248]: store.put('foo',df,append=True,format='table')                               
In [249]: store.put('foo',df,append=True,format='table')                               
In [250]: store['foo']                                                                 
Out[250]: 
   Hello0  Hello1  Hello2  Hello3  Hello4  ...  Hello43  Hello44  Hello45  Hello46  Hello47
0     0.0     0.0     0.0     0.0     0.0  ...      0.0      0.0      0.0      0.0      0.0
0     0.0     0.0     0.0     0.0     0.0  ...      0.0      0.0      0.0      0.0      0.0
0     0.0     0.0     0.0     0.0     0.0  ...      0.0      0.0      0.0      0.0      0.0

[3 rows x 48 columns]