Jaybanuan's Blog

どうせまた調べるハメになることをメモしていくブログ

dictからPandasのDataFrameを作成する

はじめに

dictからPandasのDataFrameを作成するという、ググればすぐ出てくるような話だが、ちょっと悩んだのでメモを残しておく。

課題

Pandasを利用して、以下のようなdata1から、

data1 = [
    {'col1': 1, 'col2': 2},
    {'col1': 3, 'col2': 4}
]

以下のようなDataFrameを作成したい。

col1 col2
0 1 2
1 3 4

ところが、ググった感じでは以下のようなdata2に変換が必要に思えた。

data2 = {
    'col1': [1, 3],
    'col2': [2, 4]
}

自分が扱う業務データは、ほぼ100%列ごとではなく行ごとに整理されているので、これだと変換の手間がバカにならない。

結論

実は、そのままのdata1で期待するDataFrameが作れた。

import pandas as pd

data1 = [
    {'col1': 1, 'col2': 2},
    {'col1': 3, 'col2': 4},
]

df = pd.DataFrame(data1)

print(df)

出力結果は、以下のように期待通り。

   col1  col2
0     1     2
1     3     4

ちなみに、以下の方法でDataFrameを作成しても同じ結果を得られる。

df = pd.DataFrame.from_records(data1)

ハマりどころ

様々な方法でDataFrameを作成できるのだが、DataFrameのドキュメントのExamplesにはdata1のパターンの記載がないのでdata1が受け入れられないように読めてしまった。 しかし、よく読むとNoteに以下の記載があり、

Please reference the User Guide for more information.

User Guideのリンクを辿ると、より詳しくDataFrameの作成のバリエーションが説明されている。 APIリファレンスには必要事項が網羅的に書かれているという思い込みがあったので、User Guideに辿り着くまでに時間がかかってしまった。