サイトアイコン アマチュア無線局JS2IIU

【Pandas】DataFrameのデータを辞書に変換する

こんにちは、JS2IIUです。Pandasのデータフレームの一部を抜き出してdictに変換したい場面で使えるテクニックを紹介します。今回もよろしくお願いします。

はじめに

Pandasは、Pythonでのデータ処理を効率化するための強力なライブラリです。特にDataFrameは、データを表形式で扱える便利なデータ構造ですが、時にはそのデータを辞書形式で扱いたい場面もあります。
この記事では、Pandasのto_dict()メソッドを使用して、DataFrameを辞書形式に変換する方法を解説します。変換後の形式やオプションについて、具体的なコード例を交えて説明します。

DataFrameを辞書に変換する方法

Pandasでは、DataFrameを辞書形式に変換するためにto_dict()メソッドを使用します。このメソッドは、データをさまざまな形式で辞書に変換できる便利な機能を提供します。orientオプションを使うことで、以下のような出力形式を選択できます:

サンプルコードと解説

サンプルコード

以下は、サンプルデータをDataFrameとして作成し、それをさまざまな形式の辞書に変換するコード例です。

import pandas as pd

# サンプルデータを含むDataFrameを作成
data = {
    'Name': ['Alice', 'Bob', 'Charlie'],
    'Age': [24, 30, 18],
    'City': ['New York', 'Los Angeles', 'Chicago']
}
df = pd.DataFrame(data)

# DataFrameを辞書形式に変換
dict_default = df.to_dict()  # デフォルト形式
dict_list = df.to_dict(orient='list')  # 列ごとの形式
dict_records = df.to_dict(orient='records')  # 行ごとの形式

# 辞書形式の出力を確認
print("デフォルト形式(カラムごと):")
print(dict_default)

print("\n列ごとの辞書形式:")
print(dict_list)

print("\n行ごとの辞書形式:")
print(dict_records)

実行結果

1. デフォルト形式(カラムごと)

{
    'Name': {0: 'Alice', 1: 'Bob', 2: 'Charlie'},
    'Age': {0: 24, 1: 30, 2: 18},
    'City': {0: 'New York', 1: 'Los Angeles', 2: 'Chicago'}
}

2. 列ごとの形式 (orient='list')

{
    'Name': ['Alice', 'Bob', 'Charlie'],
    'Age': [24, 30, 18],
    'City': ['New York', 'Los Angeles', 'Chicago']
}

3. 行ごとの形式 (orient='records')

[
    {'Name': 'Alice', 'Age': 24, 'City': 'New York'},
    {'Name': 'Bob', 'Age': 30, 'City': 'Los Angeles'},
    {'Name': 'Charlie', 'Age': 18, 'City': 'Chicago'}
]

コードの解説

DataFrameの作成

data = {
    'Name': ['Alice', 'Bob', 'Charlie'],
    'Age': [24, 30, 18],
    'City': ['New York', 'Los Angeles', 'Chicago']
}
df = pd.DataFrame(data)

ここでは、辞書型データを基にDataFrameを作成しています。

デフォルト形式

dict_default = df.to_dict()

列ごとの形式

dict_list = df.to_dict(orient='list')

行ごとの形式

dict_records = df.to_dict(orient='records')

まとめ

Pandasのto_dict()メソッドは、DataFrameをさまざまな形式の辞書に変換する柔軟な方法を提供します。
データの構造や使用目的に応じて、orientオプションを適切に選択することで、効率的なデータ処理が可能になります。

参考

少しだけPRです。

Pandasについて詳しく知りたいかた、もっと使いこなしたい方におすすめの本です。数年前に購入しましたが、今も手元に置いて時々見返しています。「pandasクックブック Pythonによるデータ処理のレシピ」Theodore Petrou著、黒川利明訳。

最後まで読んでいただきありがとうございます。73

モバイルバージョンを終了