スポンサーリンク

【Python】Pandas データフレームを辞書やリストに変換する方法

記事内に広告が含まれています。

Pandasのデータフレームを辞書やリストに変換することは、データをPythonのネイティブな形式で扱いたい場合に便利です。

この記事では、具体的なコード例を交えながら、データフレームを辞書やリストに変換する方法を詳しく解説します。

スポンサーリンク

データフレームを辞書に変換する方法

Pandasではto_dict()メソッドを使用してデータフレームを辞書形式に変換できます。

このメソッドは、以下のようなオプションで異なる構造の辞書を生成できます。

records形式

各行を辞書としてリストに格納します。

import pandas as pd

# サンプルデータフレームを作成
df = pd.DataFrame({
    'Name': ['Alice', 'Bob', 'Charlie'],
    'Age': [25, 30, 35],
    'City': ['New York', 'Los Angeles', 'Chicago']
})

# データフレームを辞書(records形式)に変換
dict_records = df.to_dict(orient='records')
print(dict_records)

出力

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

dict形式(デフォルト)

各列をキー、列データを値とした辞書を生成します。

dict_default = df.to_dict()
print(dict_default)

出力

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

その他の形式

  • index形式
    行インデックスをキー、行データを値として辞書を生成。
  • split形式
    辞書にindex, columns, dataを含めた構造を生成。
dict_index = df.to_dict(orient='index')
print(dict_index)

出力例

{
    0: {'Name': 'Alice', 'Age': 25, 'City': 'New York'},
    1: {'Name': 'Bob', 'Age': 30, 'City': 'Los Angeles'},
    2: {'Name': 'Charlie', 'Age': 35, 'City': 'Chicago'}
}
スポンサーリンク

データフレームをリストに変換する方法

Pandasでは、values属性やto_numpy()to_records()メソッドを使用してデータフレームをリストに変換できます。

2次元リストとして取得

各行をリストとして格納。

list_values = df.values.tolist()
print(list_values)

出力

[
    ['Alice', 25, 'New York'],
    ['Bob', 30, 'Los Angeles'],
    ['Charlie', 35, 'Chicago']
]

.valuesはNumPyの配列を返します。リストが必要な場合はtolist()を追加してください。

列ごとのリスト

データフレームの各列をリストとして取得するには、列名を指定します。

list_column = df['Name'].tolist()
print(list_column)

出力

['Alice', 'Bob', 'Charlie']

タプル形式のリスト

to_records()を使用すると、行データをタプル形式で取得できます。

list_records = df.to_records(index=False)
print(list(list_records))

出力

[
    ('Alice', 25, 'New York'),
    ('Bob', 30, 'Los Angeles'),
    ('Charlie', 35, 'Chicago')
]

辞書とリストの使い分け

  • 辞書は、データをキーと値のペアで操作したい場合や、JSON形式に変換する場合に便利です。
  • リストは、ループ処理や計算処理を行う場合に有用です。

JSON形式への変換

データフレームを辞書に変換した後、Pythonのjsonモジュールを使用してJSON形式に変換することも簡単です。

import json
import pandas as pd

# サンプルデータフレームを作成
df = pd.DataFrame({
    'Name': ['Alice', 'Bob', 'Charlie'],
    'Age': [25, 30, 35],
    'City': ['New York', 'Los Angeles', 'Chicago']
})

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

# 辞書(records形式)をJSON形式に変換
json_data = json.dumps(dict_records, indent=4)
print(json_data)

出力

[
    {
        "Name": "Alice",
        "Age": 25,
        "City": "New York"
    },
    {
        "Name": "Bob",
        "Age": 30,
        "City": "Los Angeles"
    },
    {
        "Name": "Charlie",
        "Age": 35,
        "City": "Chicago"
    }
]

まとめ

Pandasのデータフレームを辞書やリストに変換する方法は多岐にわたります。

以下に簡単にまとめます。

変換形式メソッド/属性用途
辞書 (records)to_dict(orient='records')行を辞書形式で扱いたい場合
辞書 (index)to_dict(orient='index')行インデックスをキーにした辞書が必要な場合
列リスト.tolist()特定の列データをリストとして取得したい場合
2次元リスト.values.tolist()行単位でリストを取得したい場合
スポンサーリンク
Python
著者SNS
タイトルとURLをコピーしました