HDF5 ファイルを Pandas DataFrame に読み込む
世界は進化しており、大量のデータを保存および処理するためのビッグデータが非常に重要になっています。 このような量のために、新しいファイル形式が出現し、従来のストレージ オプションを追い越しています。
そのような形式の 1つが HDF5 ファイルです。 HDF5 ファイルは Hierarchal Data Format バージョン 5 を表します。 このバージョンが最も一般的に使用されます。
このファイル形式を使用して、大量のデータを保存し、コンテンツを特定の階層に整理します。 これの利点は、必要なストレージ スペースが少なくて済み、データの一部にすばやくアクセスできることです。
このようなファイルは、Python で h5py
モジュールを使用して効率的に処理できます。 Pandas ライブラリを使用して、そのようなデータをデータ フレームにロードすることもできます。
この記事では、Python で Pandas ライブラリを使用して HDF5 ファイルを操作する方法を示します。
Pandas を使用して DataFrame を HDF5 にエクスポートする
pandas.to_hdf()
関数を使用して、データフレーム オブジェクトを HDF5 ファイルにエクスポートできます。 この関数は、HDFStore を使用してデータフレームを HDF5 ファイルに書き込みます。
この関数を使用する前に、いくつかの重要なパラメーターを理解する必要があります。
グループ識別子を指定するには、key
パラメータを使用します。 mode
パラメータを使用して、ファイルにさまざまなモードを設定できます。
w
モードはファイルを書き込みモードで開き、以前の内容を消去します。 a
モードは、ファイルを追加モードで開き、以前の内容を維持したままデータを追加します。
以下の例では、この関数を使用してデータフレームを HDF5 ファイルにエクスポートします。
df = pd.DataFrame({"C1": [10, 11, 12], "C2": [20, 21, 22]}, index=[0, 1, 2])
df.to_hdf("file_data.h5", key="df", mode="w")
上記の例では、データ フレームのコンテンツを含む HDF5 ファイルが作成されます。 ファイルを書き込みモードで開き、以前のデータを消去します。
HDF5 ファイルを Pandas DataFrame に読み込む
そのようなファイルを読み取るために直接使用できる pandas.read_hdf()
関数があります。 ただし、すべての HDF5 ファイルで機能するとは限りません。
Pandas ライブラリは、HDF5 ファイルの特定の構造のみを理解するため、この関数はそのような構造でのみ機能します。
以下のコードを参照してください。
import pandas as pd
df = pd.read_hdf("file_data.h5")
print(df)
出力:
C1 C2
0 10 20
1 11 21
2 12 22
上記の例では、read_hdf()
関数を使用して、前の関数で作成された HDF5 ファイルを読み取ります。 説明したように、HDF5 ファイルのすべての構造を pandas.read_hdf()
関数を使用して直接インポートできるわけではありません。
そのような場合には、うまくいくかもしれない簡単な修正があります。 h5py
および numpy
モジュールの使用が含まれます。
h5py.File
コンストラクターを使用して、指定された HDF5 ファイルを読み取り、numpy.array()
関数を使用して numpy
配列に格納します。 次に、pandas.DataFrame()
関数を使用して、このデータをデータフレームに保持できます。
このフォーマットを以下に示します。
import pandas as pd
import numpy as np
import h5py
df = pd.DataFrame(np.array(h5py.File("file_data.h5")["df"]))
まとめ
最後に、Python で Pandas ライブラリを使用して HDF5 ファイルを操作する方法について説明しました。 まず、HDF5 ファイル形式とその利点について学びました。
to_hdf()
メソッドを使用して、データフレームをそのようなファイルにエクスポートしました。 このようなファイルを読み取るには、read_hdf()
関数を使用します。
複雑な構造の場合、h5py、NumPy、および Pandas ライブラリの関数の組み合わせを使用して、ファイルをデータフレームに読み込むことができます。
Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.
LinkedIn