首页 > 解决方案 > 熊猫数据框索引未正确排序

问题描述

我想问一个关于 python 中熊猫的问题——特别是关于它的DataFrame()功能。

我有以下要转换为数据框的数据:

pop = {'Nevada': {2001: 2.4, 2002: 2.9}, 'Ohio': {2000: 1.5, 2001: 1.7, 2002: 3.6}}
frame3 = pd.DataFrame(pop)

我希望嵌套字典的外键是列名,内键是索引名:

请注意,解释器语法是在 Jupyter Notebook Python 3 上运行的 iPython

     Nevada   Ohio
2000    NaN    1.5
2001    2.4    1.7
2002    2.9    3.6

但是,我不断地获取按错误顺序排列的键的数据:

>> frame3
        Nevada   Ohio
2001    2.4    1.7
2002    2.9    3.6
2000    NaN    1.5

而且我似乎无法让索引按我想要的顺序出现。

为什么会这样?我该如何纠正这个问题?

奇怪的是,这就是我的 Jupyter 笔记本中出现的内容:

Jupyter 输出

但在使用learnpython.orgIDE 时,我得到以下预期输出:

learnpython.org 的预期输出

同样,在我的 iPython 上观察到相同的错误输出:

iPython 上的错误错误

标签: pythonpandasdataframedictionaryjupyter-notebook

解决方案


一种简单的解决方案可以是:

pop = {'Nevada': {2000:np.nan,2001: 2.4, 2002: 2.9}, 'Ohio': {2000: 1.5, 2001: 1.7, 2002: 3.6}}
frame3 = pd.DataFrame(pop)

或者在创建数据框后对索引进行排序:

frame3 = pd.DataFrame(pop).sort_index()

结果就是你想要的:

      Nevada  Ohio
2000     NaN   1.5
2001     2.4   1.7
2002     2.9   3.6

推荐阅读