Python in Excel では、pandas の DataFrame をそのまま扱うだけでなく、dict・list・JSON といった形式に変換して、他の処理や外部連携に使う場面がよくあります。
この記事では、DataFrame をそれぞれの形式に変換する方法と、どの形式をどんな場面で使うべきかを実例付きで整理します。
Python in Excelの導入記事はこちら。
初心者向けPython:Excel作業を自動化したい人のためのPython in Excel – Lean Data Office
今回使うデータは以下。
前回同様、バンド名、ジャンル、結成年を表形式で示した簡易なデータです。

別シートで、このテーブルをxl()メソッドを使ってDataFrameとして取り込みます。

このbandsで定義したDataFrameを辞書型、リスト型、またJson形式に変換する方法を解説していきます。
辞書型に変換する:to_dict
to_dictは、pandasのメソッドで、DataFrameをPythonの辞書 (dict) に変換するためのメソッドです。

bandsデータをto_dict()で辞書型に変換しました。
これによって、辞書型のオブジェクトへの操作を実行できます。

上記のコードでは、bands_dict の中の "Group" というデータの、先頭(0番目)の要素を取り出しています。

期待通り、先頭の”The Beatles”を取得できました。

同じく、bands_dict の中の "Year" というデータの、先頭(0番目)の要素を取り出すと、期待通り”1960″が取得できています。

リスト型に変換する:to_list
to_dictは、pandasのメソッドで、DataFrameをPythonのリスト(list) に変換するためのメソッドです

to_dictと書き方は同じです。上記の通り、bandsのDataFrameをbandslistとしてリスト形式で定義します。

これによって、Pythonのリスト型に対してのコード実行が可能です。
sortをつかってリストを昇順に並び替えてみます。

期待通りバンド名が昇順で出力しています。
JSONに変換する:to_json
to_jsonはデータフレームをjson形式に変換します。
これは主に、Pythonのデータを他のアプリや仕組み(API・Excel・Webなど)と受け渡しできる形式に変換したいときに使うことが多いです。


【参考】他データ型からDataFrameに変換する
最後に、他データ型からDataFrameに変換する方法を簡単に見ていきます。
まず、リスト型から。

my_dataのリストをdf1にデータフレームとして定義します。ただ列名の定義がリスト型では存在していないので、データフレーム化する際にcolumnsで定義します。

辞書型も同様です。
下の例ではlanguageで定義された内包リストがありますが、これをdf2として定義します。

エクセル値として出力すると以下のようになります。

Pythonのzip関数を使用することで、複数のリストを対応する形でデータフレームを作成することが可能です。
zipで複数のリストを結合します。
a = [1, 2, 3]
b = ["A", "B", "C"]
zip(a, b)
結果はこうなります。
[(1, "A"), (2, "B"), (3, "C")]
よって、言語名とエクステンションの対応表が以下では作成されています。
それをdf3として定義します。


実行すると、df2と同様の結果が得られます。
まとめ
pandas の DataFrame は、用途に応じて dict・list・JSON に変換することで活用の幅が大きく広がります。
データの取り回しや他ツールとの連携を意識しながら、to_dict() や to_json() を使い分けるのが、Python in Excel を実務で使いこなすポイントです。