You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在pandas调用to_dict与from_dict时保留DataFrame的索引顺序

解决方案

问题根因

该索引重排问题是因为pandas的DataFrame.from_dict()方法在1.4.0之前的版本中,sort参数默认值为True,即便输入的是有序字典OrderedDict,也会默认对行索引按字母顺序排序。

可行解决方法

方案1:添加sort=False参数(推荐)

如果你的pandas版本≥1.1.0,直接在调用from_dict时关闭排序即可,改动最小:

import pandas as pd
from collections import OrderedDict

# 原有转换逻辑
r = df.to_dict(into=OrderedDict)
# 重构时关闭排序即可保留原始索引顺序
new_df = pd.DataFrame.from_dict(r, sort=False)

方案2:手动重排索引(兼容所有版本)

如果你的pandas版本过旧不支持sort参数,可以从有序字典中提取原始索引顺序,手动重排:

r = df.to_dict(into=OrderedDict)
new_df = pd.DataFrame.from_dict(r)
# 从有序字典中提取原始索引顺序重排行索引
new_df = new_df.reindex(r['Column_1'].keys())

如果你的DataFrame包含多列,取任意列的键作为索引顺序,或者提前存储原始df的index备用均可。

内容的提问来源于stack exchange,提问作者Joe

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.10 12:09:02