大熊猫专栏保存命令

时间:2016-09-14 15:58:57

标签: python-3.x sorting pandas dictionary

给出以下数据框:

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

当我从列创建一个dict时,我得到了这个:

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

您会注意到它会自动对键列(a)进行排序。

我的问题是:我该如何避免这种情况?

我喜欢这样的字典:

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

提前致谢!

1 个答案:

答案 0 :(得分:2)

无法控制Python字典中的键顺序。标准库包含一个不同的数据结构 - OrderedDict - 它记住了添加键的顺序。

在这种情况下,您可以通过

填充它
In [39]: OrderedDict(df.to_records(index=False))
Out[39]: OrderedDict([('a', 'foo'), ('c', 'bar'), ('b', 'baz')])