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

为什么我的pandas DataFrame没有自动按列名排序?

问题原因解答

这个差异是pandas版本迭代导致的默认行为变更,并非书籍描述错误,书籍内容对应其出版时的主流pandas版本特性。

  • 书籍《Python for Data Analysis: Data Wrangling with Pandas, NumPy, and IPython 2nd Edition》2017年出版时,配套的pandas版本为0.20.x/0.21.x系列,当时Python 3.5及更早版本的原生字典为无序结构,pandas构造DataFrame时默认会对传入的列名按字典序排序,保证不同环境下的输出一致性。
  • 后续两个核心变更导致你本地运行的效果和书中不同:
    1. Python 3.6版本开始,原生字典默认保留插入顺序,且该特性在Python 3.7被纳入正式语法规范
    2. pandas从1.0.0版本(2020年发布)开始,DataFrame构造函数的sort参数默认值从True改为False,默认会优先保留传入列的插入顺序,不再自动排序
  • 如果需要复刻书中的自动排序效果,可以在构造DataFrame时手动指定sort=True参数,示例如下:
    import pandas as pd
    df = pd.DataFrame(你的数据, sort=True)
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 08:09:01