难以在HDF5表数据中获取多个列 [英] Having difficulty getting multiple columns in HDF5 Table Data

查看:74
本文介绍了难以在HDF5表数据中获取多个列的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I am new to hdf5 and was trying to store a DataFrame row into the hdf5 format. I was to append a row at different locations within the file; however, every time I append it shows up at an array in a single column rather than a single value in multiple columns.

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

I have tried both h5py and pandas and it seems like pandas is the better option for appending. Additionally, I have really been trying a lot of different methods. Truly, any help would be greatly appreciated.

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

Here is me sending an array multiple times into the hdf5 file.


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表数据中获取多个列的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆