【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形式への変換など、さまざまな場面で柔軟に対応できます。
-
【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
-
【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(販売台数