用pandas读取hdf5数据集

时间:2016-06-24 16:33:09

标签: python pandas dataset hdf5

我正在尝试使用pandas打开一个无组的hdf5文件:

import pandas as pd
foo = pd.read_hdf('foo.hdf5')

但是我收到了错误:

  

TypeError:如果对象不存在也没有传递值

,则无法创建存储器

我尝试通过分配key

来解决这个问题
foo = pd.read_hdf('foo.hdf5','key')

如果key是一个组,但该文件没有组,而是最高hdf结构中的几个数据集。即工作文件的结构是:组 - >数据集,而不工作文件的结构是:数据集。使用h5py打开它们时都可以正常工作,我会使用:

f = h5py.File('foo.hdf5','r')

dset = f['dataset']

查看数据集。任何想法如何在熊猫中阅读?

1 个答案:

答案 0 :(得分:2)

我认为您对不同的术语感到困惑 - 熊猫的HDF商店Group + DataSet_name是完整路径,即In [67]: store = pd.HDFStore(r'D:\temp\.data\hdf\test.h5') In [68]: store.append('dataset1', df) In [69]: store.append('/group1/sub_group1/dataset2', df) In [70]: store.groups Out[70]: <bound method HDFStore.groups of <class 'pandas.io.pytables.HDFStore'> File path: D:\temp\.data\hdf\test.h5 /dataset1 frame_table (typ->appendable,nrows->9,ncols->2,indexers->[index]) /group1/sub_group1/dataset2 frame_table (typ->appendable,nrows->9,ncols->2,indexers->[index])> In [71]: store.items Out[71]: <bound method HDFStore.items of <class 'pandas.io.pytables.HDFStore'> File path: D:\temp\.data\hdf\test.h5 /dataset1 frame_table (typ->appendable,nrows->9,ncols->2,indexers->[index]) /group1/sub_group1/dataset2 frame_table (typ->appendable,nrows->9,ncols->2,indexers->[index])> In [72]: store.close() In [73]: x = pd.read_hdf(r'D:\temp\.data\hdf\test.h5', 'dataset1') In [74]: x.shape Out[74]: (9, 2) In [75]: x = pd.read_hdf(r'D:\temp\.data\hdf\test.h5', '/group1/sub_group1/dataset2') In [76]: x.shape Out[76]: (9, 2) ...

演示:

startCaluclation()