为了账号安全,请及时绑定邮箱和手机立即绑定

熊猫数据框索引排序不正确

熊猫数据框索引排序不正确

翻阅古今 2023-12-29 15:27:06
我想问一个关于 python 中 panda 的问题 - 特别是关于它的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   Ohio2000    NaN    1.52001    2.4    1.72002    2.9    3.6但是,我不断获取密钥排列错误的数据:>> frame3        Nevada   Ohio2001    2.4    1.72002    2.9    3.62000    NaN    1.5我似乎无法使索引按我想要的顺序出现。为什么会发生这种情况?我该如何纠正这个问题?奇怪的是,这是我的 Jupyter 笔记本中出现的内容:但是当使用 的learnpython.orgIDE 时,我得到以下预期输出:同样,在我的 iPython 上观察到相同的错误输出:
查看完整描述

2 回答

?
翻翻过去那场雪

TA贡献2065条经验 获得超13个赞

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


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


查看完整回答
反对 回复 2023-12-29
?
狐的传说

TA贡献1804条经验 获得超3个赞

您只需将其放入数据框中并对其进行排序即可。看一下这个 :


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


查看完整回答
反对 回复 2023-12-29
  • 2 回答
  • 0 关注
  • 112 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信