熊猫数据框索引编制不正确

时间:2020-10-23 21:27:30

标签: python pandas dataframe dictionary jupyter-notebook

我想问一个关于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 Output

但是当使用learnpython.org的IDE时,我得到以下预期输出:

Expected output from learnpython.org

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

Erroneous error on iPython

2 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:1)

您只需要将其放入数据框中并对其进行排序。检查一下:

pandas_dataframe = pd.DataFrame(pop).sort_index()
print(pandas_dataframe)

Out[128]:
    Nevada  Ohio
2000    NaN 1.5
2001    2.4 1.7
2002    2.9 3.6