难以在 HDF5 Table 数据中获取多列
Having difficulty getting multiple columns in HDF5 Table Data
我是 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')
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]
我是 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')
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]