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

nuypyhwy  于 2023-11-15  发布在  其他
关注(0)|答案(3)|浏览(132)

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

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

字符串
输出:

  1. 2 a
  2. 1 b
  3. 3 c
  4. dtype :object

虽然预期输出应该是

于:

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


输出:

gojuced7

gojuced71#

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

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

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

oxalkeyp

oxalkeyp2#

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

kqhtkvqz

kqhtkvqz3#

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

  1. sdata = {'Ohio': 35000, 'Texas': 71000, 'Oregon': 16000, 'Utah': 5000}
  2. obj3 = pd.Series(sdata)
  3. obj3
  4. # Ohio 35000
  5. # Oregon 16000
  6. # Texas 71000
  7. # Utah 5000
  8. # dtype: int64

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

相关问题