Skip to content

Pandas DataFrame を List に変換する方法

Updated on

Pandas DataFrame を Python の list に変換する処理は、データクレンジング、エクスポート、特徴量エンジニアリング、API 用データ整形などでよく行われます。tolist() は今でも広く使われていますが、Pandas では to_numpy()to_dict() といった、より明示的でモダンなメソッドが導入されており、多くの場合こちらの方が分かりやすく、高速です。

この最新版ガイドでは、次の内容を扱います:

  • DataFrame 全体を list of lists に変換する方法
  • 単一列 を list に変換する方法
  • ネストした list や tuple を作成する方法
  • list of dicts(JSON / API 出力でよく使われる形式)といったモダンな代替手段

⚡ おまけ: DataFrame を即座に可視化する

プロットコードを書かずに、DataFrame をビジュアルに探索したいですか?

PyGWalker は、Pandas や Polars の DataFrame を Jupyter Notebook 上で Tableau ライクなインタラクティブ UI に変換するオープンソースの Python ツールです。

インストールして、次のように実行するだけです:

pip install pygwalker
import pygwalker as pyg
gwalker = pyg.walk(df)
Run in Kaggle (opens in a new tab)Run in Google Colab (opens in a new tab)⭐ GitHub (opens in a new tab)

🧩 1. DataFrame 全体を List(List of Lists)に変換する

最も一般的なのは、各行を list に変換する方法です。

✔ 2025 年時点の推奨: df.to_numpy().tolist()

import pandas as pd
 
df = pd.DataFrame({'numbers': [1, 2, 3], 'letters': ['a', 'b', 'c']})
list_from_df = df.to_numpy().tolist()
print(list_from_df)

出力:

[[1, 'a'], [2, 'b'], [3, 'c']]

df.values より to_numpy() を優先すべき理由

  • df.values は古いインターフェースで、一部の dtype では挙動が一貫しない場合があります
  • to_numpy() は、Pandas が推奨する、よりモダンで明示的なメソッドです

🧩 2. 単一の列を List に変換する

Series.tolist() を使うのが、シンプルかつ高速です。

list_from_column = df["numbers"].tolist()
print(list_from_column)

出力:

[1, 2, 3]

🧩 3. ネストした List や Tuple(List of Tuples)を作る

SQL の insert 用や、特定の API 入力形式として tuple が必要な場合は、次のようにします。

nested_list = [tuple(row) for row in df.to_numpy()]
print(nested_list)

出力:

[(1, 'a'), (2, 'b'), (3, 'c')]

to_records() を使う別解

nested_list = [tuple(x) for x in df.to_records(index=False)]

⭐ おまけ: List of Dicts に変換する(JSON / API 向け)

実務では、JSON 風のオブジェクトが求められることが多くあります。

list_of_dicts = df.to_dict(orient="records")
print(list_of_dicts)

出力:

[
  {"numbers": 1, "letters": "a"},
  {"numbers": 2, "letters": "b"},
  {"numbers": 3, "letters": "c"}
]

この形式は次のような用途で最も一般的です:

  • API とのデータのやり取り
  • 機械学習用特徴量のエクスポート
  • JSON ファイルへの書き出し
  • システム間で構造化データを受け渡しする場合

📌 クイックサンプル(まとめ)

# list of lists
df.to_numpy().tolist()
 
# df.values を使う(古い書き方)
df.values.tolist()
 
# 列 → list
df["numbers"].tolist()
 
# list of tuples
[tuple(x) for x in df.to_numpy()]
 
# list of dicts(JSON 用にそのまま使える形式)
df.to_dict("records")

✅ まとめ

Pandas DataFrame を list に変換すること自体は簡単ですが、用途に合った形式を選ぶこと が重要です。

目的推奨メソッド
行を list として表現したいdf.to_numpy().tolist()
単一列を list にしたいdf[col].tolist()
Tuple 形式(SQL / API 向け)[tuple(x) for x in df.to_numpy()]
JSON 向けのオブジェクトにしたいdf.to_dict("records")

これらのモダンな手法を押さえておけば、モデリング、可視化、エクスポートのいずれにおいても、DataFrame をシンプルかつ効率的に変換できるようになります。