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

如何使用pandas导入多个列序不同的Excel并统一格式合并

代码修改方案

你只需要在合并完成后为最终的DataFrame指定需要的列顺序即可,pandas会自动按列名匹配对应数据,不会出现错位问题。修改后的代码如下:

import os
import pandas as pd

# 提前定义好目标列顺序
TARGET_COLS = ['title1', 'title2', 'title3', 'title4']

cwd = os.path.abspath('') 
files = os.listdir(cwd)  
df_list = []
for file in files:
    # 兼容大小写后缀的Excel文件
    if file.endswith(('.XLSX', '.xlsx')):
        temp_df = pd.read_excel(file)
        df_list.append(temp_df)

# 合并所有表格
df = pd.concat(df_list, ignore_index=True)
# 按指定顺序重排列,多余的列会被丢弃,缺失的列会赋值为NaN
df = df[TARGET_COLS]

print(df)
# 如需导出结果可添加下行代码
# df.to_excel('合并结果.xlsx', index=False)

补充说明

  • pandas的DataFrame传入列名列表取值时,会严格按照列表顺序返回对应列数据,只要列名一致,不管原始Excel的列排序是什么样都不会出现错位。
  • 这里把原代码的append替换为pd.concat,是因为append在pandas 2.0+版本已被正式弃用,concat的性能和兼容性更好。
  • 如果需要保留所有Excel的额外列,仅把目标四列放在最前面,可以把重排列的逻辑替换为如下代码:
# 目标列在前,其余列按原有顺序跟在后面
other_cols = [col for col in df.columns if col not in TARGET_COLS]
df = df[TARGET_COLS + other_cols]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.08 14:42:01