pandas pd.series会对字典键进行排序吗?

nuypyhwy  于 12个月前  发布在  其他
关注(0)|答案(3)|浏览(117)

我使用的是Jake Vaderplas在《Python Data Science Handbook》中提供的一个名为“databotebook”的笔记本,它说:数据可以是一个字典,其中index默认为排序后的字典键
但是当我运行这段代码时,输出并没有按照字典键进行排序。
于:

pd.Series({2:'a', 1:'b', 3:'c'})

字符串
输出:

2    a
1    b
3    c
dtype :object

虽然预期输出应该是

于:

pd.Series({2:'a', 1:'b', 3:'c'})


输出:

gojuced7

gojuced71#

首先要明确的是,pandas系列默认不是sorted。但是如果你想创建一个按索引应该是sorted的系列,

sr = pd.Series({2:'a', 1:'b', 3:'c'}).sort_index()
sr

字符串
输出量:
这将给予您所需的结果。

oxalkeyp

oxalkeyp2#

.sort_index()添加到您的代码中,您将获得您想要的结果。

kqhtkvqz

kqhtkvqz3#

根据Python for Data Analysis -第二版,在第125页,我们可以看到作者提供了下面给出的文本和示例。“当你只传递一个dict时,结果系列中的索引将按排序顺序拥有dict的键”
在字典创建过程中,您可以看到城市名称不按顺序排列。但是结果显示是按顺序排列的。

sdata = {'Ohio': 35000, 'Texas': 71000, 'Oregon': 16000, 'Utah': 5000}

obj3 = pd.Series(sdata)
obj3

# Ohio 35000
# Oregon 16000
# Texas 71000
# Utah 5000
# dtype: int64

字符串
我认为原因可能是字典对象中引起的变化。

相关问题