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

Python3.6.3中创建pd.DataFrame时如何保持列定义顺序?

保持DataFrame列定义顺序的解决方案

在Python 3.6.3中,标准字典已经支持保留插入顺序,但如果你的pandas版本低于0.23.0,它默认不会利用这个特性来维持DataFrame的列顺序。要确保列的顺序和你定义时完全一致,这里有两种可靠的方法:

方法1:显式指定columns参数(最稳妥)

这是不受pandas版本限制的通用方案,直接在创建DataFrame时明确列的顺序:

import pandas as pd

# 按你想要的顺序定义数据字典
data_dict = {
    'GroupId': [101, 102, 103],
    'Name': ['Anna', 'Ben', 'Claire'],
    'Score': [85, 92, 78]
}

# 通过columns参数强制指定列顺序,和字典定义顺序一致
df = pd.DataFrame(data_dict, columns=['GroupId', 'Name', 'Score'])

# 验证顺序
print(df)
df.info()

这样不管你用的pandas版本是新是旧,输出的列顺序都会严格遵循你指定的GroupId→Name→Score的顺序。

方法2:依赖Python 3.6+字典的有序性(需pandas≥0.23.0)

如果你的pandas版本在0.23.0及以上,它已经适配了Python 3.6+的有序字典特性,直接创建DataFrame就能自动保留字典的插入顺序:

import pandas as pd

data_dict = {
    'GroupId': [101, 102, 103],
    'Name': ['Anna', 'Ben', 'Claire'],
    'Score': [85, 92, 78]
}

df = pd.DataFrame(data_dict)

# 此时df的列顺序会和字典定义的一致
print(df)
df.info()

不过这种方法依赖pandas版本,所以更推荐第一种显式指定的方式,避免因为版本差异导致的顺序问题。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 07:17:09