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

低版本Pandas下pd.concat(sort=False)参数不兼容的解决方案

低版本 Pandas 禁用 concat 列自动排序的代码解决方案

sort 参数是 Pandas 0.23.0 版本才新增的配置项,低于该版本的运行环境无法识别该参数,以下两种方案都可以在不升级 Pandas 的前提下,避免合并结果的列被自动按字母顺序排序:

方案1:合并后按预期顺序重排列

适用于待合并的多个 DataFrame 列完全一致,或你需要的列顺序和首个 DataFrame 列顺序一致的场景:

# 先执行无 sort 参数的合并
new_df = pd.concat([df1, df2, df3])
# 按照首个 DataFrame 的列顺序重排合并结果的列
new_df = new_df[df1.columns]

方案2:合并前统一所有 DataFrame 的列顺序

适用于多个待合并 DataFrame 列存在差异的场景,可自定义最终输出的列顺序:

# 按你需要的顺序收集所有列,示例优先保留第一个 DataFrame 的列顺序,新增列追加在末尾
custom_cols = []
for df in [df1, df2, df3]:
    for col in df.columns:
        if col not in custom_cols:
            custom_cols.append(col)

# 给所有待合并 DataFrame 补全缺失列,统一列顺序
df1_aligned = df1.reindex(columns=custom_cols)
df2_aligned = df2.reindex(columns=custom_cols)
df3_aligned = df3.reindex(columns=custom_cols)

# 合并后列顺序和自定义顺序完全一致,不会被自动排序
new_df = pd.concat([df1_aligned, df2_aligned, df3_aligned])

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 20:51:01