2016-09-14 5 views
2

を保存DICTする:パンダ列以下のデータフレーム与えられた順番

df = pd.DataFrame({'a':['a','c','b'], 
        'b':['foo','bar','baz']}) 
df 
    a b 
0 a foo 
1 c bar 
2 b baz 

私は列から辞書を作成するときに、私はこれを取得:

dict(zip(df.a,df.b)) 
{'a': 'foo', 'b': 'baz', 'c': 'bar'} 

あなたはそれをソートすることがわかりますキー列(a)を自動的に選択します。

私の質問は:これを避けるにはどうすればよいですか?

私はこのようになります辞書たい:事前に

{'a': 'foo', 'c': 'bar', 'b': 'baz', } 

感謝を!

+3

経由で取り込むことができますが、キーの辞書順が、これはパンダとは何の関係もありません必ずしも挿入順ではありません、あなたがしたい場合は、orderedDictを使用する必要があると思います挿入順を保持する – EdChum

+2

辞書内のキーの順序を制御することはできません。 –

+0

OrderedDictが機能しました!ありがとう、EdChum。回答として投稿したい場合は、それに応じてマークします。 –

答えて

2

Python辞書のキーの順序を制御することはできません。標準ライブラリには、このための異なるデータ構造が含まれています - OrderedDict - キーが追加された順序を記憶しています。この場合

、あなたは

In [39]: OrderedDict(df.to_records(index=False)) 
Out[39]: OrderedDict([('a', 'foo'), ('c', 'bar'), ('b', 'baz')]) 
関連する問題