我正在使用 Jake Vaderplas 提供的 Jupyter 笔记本,“Python 数据科学手册”,它说:数据可以是字典,其中索引默认为排序的字典键
但是当我运行代码时,输出未按字典键排序。我在这里缺少什么?
在:
pd.Series({2:'a', 1:'b', 3:'c'})
出:
2 a
1 b
3 c
dtype :object
在:
pd.Series({2:'a', 1:'b', 3:'c'})
出:
1 b
2 a
3 c
dtype :object
首先要明确的是,pandas 系列默认不是
sorted
。但如果你想制作一个系列,索引应该是sorted
,
sr = pd.Series({2:'a', 1:'b', 3:'c'}).sort_index()
sr
输出:
1 b
2 a
3 c
这将为您提供所需的结果。
将
.sort_index()
添加到您的代码中,您将得到您想要的结果。
根据《Python for Data Analysis - Second Edition》第 125 页,我们可以看到作者提供了下面给出的文本和示例。 “当您仅传递一个字典时,结果系列中的索引将按排序顺序包含字典的键”
创建词典时,您可以看到不按顺序排列的城市名称。但结果显示是正常的。
sdata = {'Ohio': 35000, 'Texas': 71000, 'Oregon': 16000, 'Utah': 5000}
obj3 = pd.Series(sdata)
obj3
# Ohio 35000
# Oregon 16000
# Texas 71000
# Utah 5000
# dtype: int64
我认为原因可能是字典对象引起的变化。