Pandas データ フレームにメタデータを追加する

Hira Arif 2024年2月15日
Pandas データ フレームにメタデータを追加する

データに関するデータとも呼ばれるメタデータは、Web パブリッシングを通じて Web 上で共有されるドキュメントのコンテンツを記述、検索、および管理する構造化データです。

一部の Web サーバーおよびソフトウェア ツールは、メタデータを自動的に生成できます。 ただし、手動プロセスも実行可能です。

ドキュメントの編成、見つけやすさ、アクセシビリティ、インデックス作成、および検索を向上させることができます。

Pandas データ フレームは、データ フレームの上に構築されたデータ構造であり、R データ フレームと Python 辞書の両方の機能を提供します。

これは Python の辞書に似ていますが、Excel のテーブルや行と列を持つデータベースなど、すべてのデータ分析および操作機能を備えています。 このチュートリアルでは、Pandas データ フレームへのメタデータの追加について説明します。

Pandas データ フレームにメタデータを追加する

メタデータをデータ フレームに追加するには、以下の要件を満たす必要があります。

  1. データ フレームを作成またはインポートします。
  2. データ フレームの既存のメタデータを読み取ります。
  3. メタデータをデータ フレームに追加します。

データ フレームの作成またはインポート

メタデータを追加するには、データ フレームが必要です。 この目的のために、pandas という Python ライブラリをインストールする必要があります。

PS C:\> pip install pandas

pandas を使用して、ファイルからデータ フレームを読み込んでみましょう。

コード例 (demo.py に保存):

import pandas as pd

df = pd.read_csv("Data.csv")
print(df)

上記のコードは、Python パッケージ pandaspd としてインポートします。 関数 pd.read_csv() は、データ フレームをインポートして読み取り、df という名前の変数に保存します。

pd とは何かを見てみましょう。

出力 (コンソールに出力):

データ フレーム

データ フレームの既存のメタデータを読み取る

インポートされたデータ フレームには、いくつかの既存のメタデータも含まれています。 以下のコード例で確認できます。

  1. Pandas の info() 関数は、データ フレームの簡単な要約を提供します。 max_colsmemory_usageshow_countsnull_counts などの情報を取得します。

    df.info() を呼び出して出力する以下のコードを実行してみましょう。

    コード例 (demo.py に保存):

    print(df.info())
    

    出力 (コンソールに出力):

    既存の情報

  2. Pandas columns 属性は、各データ フレーム列のラベルを含む Index と呼ばれる順序付けられたセットの不変の n 次元配列を返します。 df.columns を呼び出して Index を出力する以下のコードを実行してみましょう。

    コード例 (demo.py に保存):

    print(df.columns)
    

    出力 (コンソールに出力):

    列

  3. Pandas describe() 関数は、データ フレームの記述統計を生成します。 これには、countmean、および stdminmax、およびパーセンタイルとしての標準偏差が含まれます。

    df.describe() を呼び出して出力する次のコードを実行しましょう。

    コード例 (demo.py に保存):

    print(df.describe())
    

    出力 (コンソールに出力):

    説明

データ フレームにメタデータを追加する

以下のコードを実行して、Pandas データ フレームにメタデータを追加しましょう。

コード例 (demo.py に保存):

df.audi_car_model = "Q5"
df.audi_car_price_in_dollars = 119843.12
print(f"Car Model: {df.audi_car_model}")
print(f"Car Price ($): {df.audi_car_price_in_dollars}")

出力 (コンソールに出力):

metadata one

注: Python は、メタデータをデータ フレームに伝達するための強力な方法を提供していません。

たとえば、メタデータが添付されたデータ フレームで group_by などの操作を行うと、メタデータが添付されていない前のデータ フレームが返されます。

ただし、後で処理するために、メタデータを HDF5 ファイルに保存できます。 以下のコードを実行して、メタデータを HDF5 ファイルに保存してみましょう。

コード例 (demo.py に保存):

def store_in_hdf5(filename, df, **kwargs):
    hdf5_file = pd.HDFStore(filename)
    hdf5_file.put("car_data", df)
    hdf5_file.get_storer("car_data").attrs.metadata = kwargs
    hdf5_file.close()


filename = "car data.hdf5"
metadata = {"audi_car_model": "Q5", "audi_car_price_in_dollars": 119843.12}
store_in_hdf5(filename, df, **metadata)

store_in_hdf5() 関数は次の機能を実行します。

  1. filename を引数として pd.HDFStore() 関数を使用して hdf5_file を作成します。
  2. 引数として適切な名前と df を取って、hdf5_file.put() を使用してデータ フレームをファイルに挿入します。
  3. メタデータを hdf5_file に保存します。 hdf5_file.get_storer('car_data').attrs.metadata を使用し、それに metadata を割り当てます。
  4. hdf5_file.close() を呼び出してファイルを閉じます。

それでは、以下のコードを実行して、ファイルからデータ フレームとメタデータをインポートしましょう。

コード例 (demo.py に保存):

def import_from_file(hdf5_file):
    data = hdf5_file["car_data"]
    metadata = hdf5_file.get_storer("car_data").attrs.metadata
    return data, metadata


filename = "car data.hdf5"
with pd.HDFStore(filename) as hdf5_file:
    data, metadata = import_from_file(hdf5_file)

print(f"Data: {data}")
print(f"Metadata: {metadata}")

import_from_file() 関数は hdf5_file を引数として取ります。 次の情報を取得します。

  1. hdf5_file[] でデータの名前を指定して data
  2. 関数 hdf5_file.get_storer('car_data').attrs.metadatametadata 属性を呼び出すことによる metadata

次に、Python ファイル demo.py を次のように実行します。

PS C:>python demo.py

import_from_file() 関数によって返された datametadata を出力します。

出力 (コンソールに出力):

メタデータ 2