Python
 Computer >> コンピューター >  >> プログラミング >> Python

【Python】PandasのDataFrameを辞書に変換する方法 – to_dict()の使い方

PandasのDataFrameを辞書(dict)に変換したい場合は、to_dict()メソッドを使用します。この記事では、実際のコード例とともに、DataFrameから辞書への変換方法をわかりやすく解説します。

変換の手順

  • 2次元の表形式データを持つDataFrame(df)を作成します。
  • 入力用のDataFrame df を表示して確認します。
  • to_dict()メソッドを使ってDataFrameを辞書に変換し、結果を出力します。

サンプルコード

import pandas as pd

df = pd.DataFrame(
   {
      "x": [5, 2, 7, 0],
      "y": [4, 7, 5, 1],
      "z": [9, 3, 5, 1]
   }
)
print("入力DataFrame:\n", df)
print("辞書に変換した結果:\n", df.to_dict())

実行結果

入力DataFrame:
   x  y  z
0  5  4  9
1  2  7  3
2  7  5  5
3  0  1  1

辞書に変換した結果:
{'x': {0: 5, 1: 2, 2: 7, 3: 0}, 'y': {0: 4, 1: 7, 2: 5, 3: 1},
'z': {0: 9, 1: 3, 2: 5, 3: 1}}

orient引数で出力形式を変更する

to_dict()メソッドは、デフォルトでは「列名 → {インデックス: 値}」という形式のネストされた辞書を返します。しかし、orient引数を指定することで、さまざまな形式に変換できます。

主なorientオプション

  • 'dict'(デフォルト): {列名 → {インデックス → 値}}
  • 'list': {列名 → [値のリスト]}
  • 'records': [{列名 → 値}, ...] のリスト形式
  • 'index': {インデックス → {列名 → 値}}

使用例

# 各列をリストとして取得
df.to_dict(orient='list')
# {'x': [5, 2, 7, 0], 'y': [4, 7, 5, 1], 'z': [9, 3, 5, 1]}

# レコード形式(JSONに近い構造)で取得
df.to_dict(orient='records')
# [{'x': 5, 'y': 4, 'z': 9}, {'x': 2, 'y': 7, 'z': 3}, ...]

まとめ

DataFrameを辞書に変換するにはto_dict()メソッドを使うのが最も簡単です。用途に応じてorient引数を活用すれば、APIレスポンスの作成やJSON形式への変換など、さまざまな場面で柔軟に対応できます。

  1. 【Python・Pandas】複数のCSVファイルを1つのデータフレームに結合する方法

    複数のCSVファイルを1つのデータフレームにまとめて結合(マージ)したい場合、Pythonのglobモジュールが便利です。os.path.join()メソッドで対象ファイルのパスを指定し、concat()関数を使うことで、すべてのCSVファイルを簡単に連結できます。必要なライブラリのインポートまず、必要なライブラリをインポートします。ここではpandasライブラリを「pd」という別名で読み込んでいます。import pandas as pd import glob import osサンプルとなるCSVファイル今回は、以下の3つのCSVファイルを結合してみましょう。Sales1.csvSale

  2. 【Python】複数のCSVファイルを1つのPandasデータフレームに結合する方法

    複数のCSVファイルを1つのデータフレームにまとめる基本手法 複数のCSVファイルを1つのPandasデータフレームに結合したい場合、read_csv()とpd.concat()を組み合わせるのが最もシンプルで効率的な方法です。まずは、必要なPandasライブラリをインポートしましょう。ここでは、エイリアスとして「pd」を設定します。 import pandas as pd サンプルとなるCSVファイル 今回は、以下の2つのCSVファイルを例に説明します。 Sales1.csv Sales2.csv どちらのファイルにも「Car(車種)」「Place(地域)」「UnitsSold(販売台数