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

字典列表转Pandas DataFrame列顺序不符,如何解决?

解决DataFrame列顺序与字典列表定义不一致的问题

先还原下你的场景:你通过for循环生成了一个指定键顺序的字典列表,转成DataFrame后却发现列顺序乱了,不是你定义的Plo、Ots、Gts、Mts、Frts、Fin这个顺序。我先把你的代码补全下(原代码里有个小细节的分支缺失,帮你补上了):

isv = []
for obj in hearts:
    rawvalue = obj.raw - readvalue
    if rawvalue < 0:
        rawvalue = rawvalue + 440
    # 补充else分支,让rawvalue保持原值
    else:
        rawvalue = rawvalue
    obj = str(obj)
    obj = obj.strip('<').split(" ")[0]
    isv.append({
        'Plo': obj,
        'Ots': viewdata(rawvalue)[0][3],
        'Gts': viewdata(rawvalue)[0][0],
        'Mts': viewdata(rawvalue)[0][1],
        'Frts': viewdata(rawvalue)[0][2],
        'Fin': rawvalue
    })

# 转成DataFrame
pdadata = pd.DataFrame(isv)

为什么会出现列顺序不对的情况?

虽然Python 3.7及以后版本已经把字典的插入顺序作为官方特性保留,但pandas在处理字典列表生成DataFrame时,偶尔会因为内部兼容逻辑导致列顺序和预期不符。所以最稳妥的方式是显式指定列顺序,不要依赖默认行为。

解决方案

这里给你两种最常用的方法:

方法1:生成DataFrame时直接指定列顺序

这是最高效的方式,创建DataFrame的同时就传入你想要的列顺序:

# 先定义好目标列顺序
column_order = ['Plo', 'Ots', 'Gts', 'Mts', 'Frts', 'Fin']
# 创建时指定columns参数
pdadata = pd.DataFrame(isv, columns=column_order)

这样生成的DataFrame会严格按照你定义的顺序排列列,一步到位。

方法2:生成DataFrame后调整列顺序

如果你已经生成了DataFrame,也可以用下面两种方式快速调整:

column_order = ['Plo', 'Ots', 'Gts', 'Mts', 'Frts', 'Fin']

# 方式A:用reindex方法
pdadata = pdadata.reindex(columns=column_order)

# 方式B:直接索引选择(更简洁)
pdadata = pdadata[column_order]

这两种方式效果完全一致,选你顺手的就行。

验证效果

用你给出的样本数据,调整后DataFrame的列顺序就会和你期望的一致:

Plo     Ots    Gts     Mts    Frts       Fin
0    1   Parcel    Red    Blue  Yellow  678.5470
1    2     Gift  Green  purple   Black  876.2140
2    3    Order  Green  purple   Black  877.2170
3    4     Base  Green  purple   Black  922.1450
4    5     Flat  Green  purple   Black  964.2000
5    6     Deal  Green  purple   Black  400.0000
6    7  Mission  Green  purple   Black  450.1240
7    8     Base  Green  purple   Black  520.2145
8    9     Flat  Green  purple   Black  570.1450
9   10     Deal  Green  purple   Black  600.1780

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 07:11:45