Python in Excel実践:pandas DataFrameをdict・list・JSONに変換する

pandas python 1

Python in Excel では、pandas の DataFrame をそのまま扱うだけでなく、dict・list・JSON といった形式に変換して、他の処理や外部連携に使う場面がよくあります
この記事では、DataFrame をそれぞれの形式に変換する方法と、どの形式をどんな場面で使うべきかを実例付きで整理します。

Python in Excelの導入記事はこちら。

初心者向けPython:Excel作業を自動化したい人のためのPython in Excel – Lean Data Office

今回使うデータは以下。

前回同様、バンド名、ジャンル、結成年を表形式で示した簡易なデータです。

image

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

image

このbandsで定義したDataFrameを辞書型、リスト型、またJson形式に変換する方法を解説していきます。

辞書型に変換する:to_dict

to_dictは、pandasのメソッドで、DataFrameをPythonの辞書 (dict) に変換するためのメソッドです。

image

bandsデータをto_dict()で辞書型に変換しました。

これによって、辞書型のオブジェクトへの操作を実行できます。

image

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

image

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

image

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

image

リスト型に変換する:to_list

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

image

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

image

これによって、Pythonのリスト型に対してのコード実行が可能です。

sortをつかってリストを昇順に並び替えてみます。

image

期待通りバンド名が昇順で出力しています。

JSONに変換する:to_json

to_jsonはデータフレームをjson形式に変換します。

これは主に、Pythonのデータを他のアプリや仕組み(API・Excel・Webなど)と受け渡しできる形式に変換したいときに使うことが多いです。

image
image

【参考】他データ型からDataFrameに変換する

最後に、他データ型からDataFrameに変換する方法を簡単に見ていきます。

まず、リスト型から。

image

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

image

辞書型も同様です。

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

image

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

image

Pythonのzip関数を使用することで、複数のリストを対応する形でデータフレームを作成することが可能です。

zipで複数のリストを結合します。

a = [1, 2, 3]
b = ["A", "B", "C"]

zip(a, b)

結果はこうなります。

[(1, "A"), (2, "B"), (3, "C")]

よって、言語名とエクステンションの対応表が以下では作成されています。

それをdf3として定義します。

image
image

実行すると、df2と同様の結果が得られます。

まとめ

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

筋トレとオートメーションが趣味。 モバイルアプリ個人開発者。 データ処理・可視化とレポートにハマり備忘録と情報共有のためにブログ開設し運営している。