多くのユースケースでは、DataFrameに辞書を格納することはお勧めできません。
言及する価値のある別のデータ構造は、Panelです。
は、あなたが(ほぼ一貫キーで)何かの辞書のデータフレームがあるとします。
In [11]: df = pd.DataFrame([[{'a': 1, 'b': 2}, {'a': 3, 'b': 4}], [{'a': 5, 'b': 6}, {'a': 7, 'b': 8}]], columns=list('AB'))
In [12]: df
Out[12]:
A B
0 {'a': 1, 'b': 2} {'a': 3, 'b': 4}
1 {'a': 5, 'b': 6} {'a': 7, 'b': 8}
あなたがパネルを作成することができます(これを構築することが好ましい/より直接的な方法があります注意してください!):
In [13]: wp = pd.Panel({'A': df['A'].apply(pd.Series), 'B': df['B'].apply(pd.Series)})
In [14]: wp
Out[14]:
<class 'pandas.core.panel.Panel'>
Dimensions: 2 (items) x 2 (major_axis) x 2 (minor_axis)
Items axis: A to B
Major_axis axis: 0 to 1
Minor_axis axis: a to b
セクションは例のために、様々な方法でデータフレームのように効率的にアクセスすることができる。
In [15]: wp.A
Out[15]:
a b
0 1 2
1 5 6
In [16]: wp.minor_xs('a')
Out[16]:
A B
0 1 3
1 5 7
In [17]: wp.major_xs(0)
Out[17]:
A B
a 1 3
b 2 4
ですから、すべてのパンダのデータフレームwhizzinessを行うことができます。
In [18]: wp.A.plot() # easy!
Out[18]: <matplotlib.axes.AxesSubplot at 0x1048342d0>
("experimental") higher dimensional Panelsもあります。
更新:最後に、私は完全に機能し続けている階層的なインデックスを使いました。 – Sylvansight