1

hdf ファイルを読み込もうとしていますが、グループが表示されません。テーブルと h5py を使用していくつかの異なる方法を試しましたが、ファイル内のグループを表示することはできません。確認したところ、ファイルは「Hierarchical Data Format (version 5) data」です (更新を参照)。ファイル情報は参考用です

サンプルデータはこちら

import h5py
import tables as tb

hdffile = "TRMM_LIS_SC.04.1_2010.260.73132"

h5py の使用:

f = h5py.File(hdffile,'w')
print(f)

出力:

< HDF5 file "TRMM_LIS_SC.04.1_2010.260.73132" (mode r+) >
[]

テーブルの使用:

fi=tb.openFile(hdffile,'r')
print(fi)

出力:

TRMM_LIS_SC.04.1_2010.260.73132 (File) ''
Last modif.: 'Wed Aug 10 18:41:44 2016'
Object Tree:
/ (RootGroup) ''

Closing remaining open files:TRMM_LIS_SC.04.1_2010.260.73132...done

アップデート

h5py.File(hdffile,'w') overwrote the file and emptied it.

今私の質問は、h5pyとテーブルの両方が機能しないため、hdfバージョン4ファイルをPythonに読み込む方法です?

4

3 に答える 3

1

アップデート:

最新のライブラリ/モジュールはすべて HDF バージョン 5 で動作するため、最初に HDF バージョン 4 ファイルを HDF5 / h5 ファイルに変換することをお勧めします...

古い答え:

この方法で試してください:

store = pd.HDFStore(filename)
print(store)

これにより、保存されているキー、保存されている DF の長さなど、HDF ファイルに関する詳細が出力されます。

デモ:

In [18]: fn = r'C:\Temp\a.h5'

In [19]: store = pd.HDFStore(fn)

In [20]: print(store)
<class 'pandas.io.pytables.HDFStore'>
File path: C:\Temp\a.h5
/df_dc               frame_table  (typ->appendable,nrows->10,ncols->3,indexers->[index],dc->[a,b,c])
/df_no_dc            frame_table  (typ->appendable,nrows->10,ncols->3,indexers->[index])

上記の出力からキーを使用してデータフレームを読み取ることができるようになりました。

In [21]: df = store.select('df_dc')

In [22]: df
Out[22]:
    a   b   c
0  92  80  86
1  27  49  62
2  55  64  60
3  31  66   3
4  37  75  81
5  49  69  87
6  59   0  87
7  69  91  39
8  93  75  31
9  21  15   7
于 2016-08-10T19:17:52.753 に答える
0

パンダを使ってみてください:

import pandas as pd
f = pd.read_hdf(C:/path/to/file)

こちらの Pandas HDF ドキュメントを参照してください。

これにより、操作可能なデータフレームとして任意の hdf ファイルが読み込まれます。

于 2016-08-10T18:58:25.017 に答える