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

Pandas使用append合并csv文件列顺序错乱、ytd列错位如何解决

解决方案

你遇到的列排序错乱、ytd列未对齐的问题,是因为旧版pandas的append方法默认会按字母顺序重排列名,且如果两个表列名存在微小差异(如隐藏空格)时会识别为不同列。append方法目前已被pandas官方弃用,推荐使用pd.concat实现拼接,操作如下:

基础实现代码

import pandas as pd

dfaq = pd.read_csv('aq2.csv')
dfmg1 = pd.read_csv('test10320_2.csv')

# concat拼接时设置sort=False即可保留原列顺序,同时自动按列名对齐
dfaq1 = pd.concat([dfmg1, dfaq], ignore_index=True, sort=False)

相关说明

  • sort=False参数会禁止自动按字母顺序重排列,优先保留第一个传入DataFrame(也就是你代码里的dfmg1)的列顺序
  • 拼接时会自动按列名匹配对齐,同名的ytd列会自动合并到同一列,仅单个表存在的列对应空缺位置会自动填充NaN

异常场景处理

如果拼接后仍存在ytd列拆分的情况,说明两个表的ytd列名存在肉眼不可见的差异(如前后空格),可先统一清洗列名再拼接:

# 统一去除所有列名前后的空格
dfaq.columns = dfaq.columns.str.strip()
dfmg1.columns = dfmg1.columns.str.strip()

# 再执行拼接
dfaq1 = pd.concat([dfmg1, dfaq], ignore_index=True, sort=False)

如果需要严格指定自定义列顺序,可在拼接后手动重排:

# 示例:保留dfmg1的原有列顺序
target_columns = dfmg1.columns.tolist()
dfaq1 = dfaq1[target_columns]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 21:48:00