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

Pandas中DataFrame列名顺序为何不符合预期?(Python3.6/Pandas0.23)

为什么DataFrame的列顺序和预期不一致?

嘿,这个问题我刚接触Pandas的时候也踩过坑!原因其实出在你定义列名用的数据结构上:

  • 你用了集合(set) {'a', 'b', 'c'}来指定columns参数,但集合在Python 3.6及更早版本里是无序的——它不会保存你输入元素时的顺序,每次遍历集合的元素顺序都是随机的,所以Pandas读取这个集合作为列名时,自然就不是你想要的a、b、c顺序了。
  • 补充个小知识点:Python 3.7及以后的版本里,集合开始支持保留插入顺序,但你的环境是Python 3.6,所以完全享受不到这个特性,还是会出现列顺序混乱的情况。

解决办法

把集合改成有序的数据结构就行,比如列表(list)或者元组(tuple):

import pandas as pd
import numpy as np

# 用列表指定列顺序(推荐)
df = pd.DataFrame(data=np.random.random(size=(5,3)), columns=['a', 'b', 'c'])
# 或者用元组
# df = pd.DataFrame(data=np.random.random(size=(5,3)), columns=('a', 'b', 'c'))

print(df.columns)  # 输出 Index(['a', 'b', 'c'], dtype='object'),完全符合预期

这样就能严格按照你定义的顺序生成DataFrame的列啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 08:57:58