给出以下数据框:
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', }
提前致谢!
答案 0 :(得分:2)
无法控制Python字典中的键顺序。标准库包含一个不同的数据结构 - OrderedDict
- 它记住了添加键的顺序。
在这种情况下,您可以通过
填充它In [39]: OrderedDict(df.to_records(index=False))
Out[39]: OrderedDict([('a', 'foo'), ('c', 'bar'), ('b', 'baz')])