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

如何使用Python合并Excel文件(AB列+C列)?pandas合并失败如何解决?

问题排查与修正代码

原有代码存在3个核心问题:

  • 未导入os库就调用os.path.basename方法,会直接触发语法报错
  • 使用已被pandas弃用的append方法做纵向拼接,和按列合并的需求不符
  • 没有筛选指定的A、B、C列,读取了表格全部无关列

情况1:所有Excel文件都包含A、B、C三列,需将多文件的三列数据纵向合并

!pip install xlrd xlwt openpyxl pandas
import os
import pandas as pd

df_list = []
# 可自行扩展替换成你需要合并的所有Excel文件路径
file_list = ['MOMO摩天-專品商品名稱購買人數.xls', 'MOMO摩天-專品價格.xls']

for f in file_list:
    # pandas列索引从0开始计数,A=0、B=1、C=2,仅读取指定三列
    data = pd.read_excel(f, sheet_name='Sheet1', usecols=[0,1,2])
    # 不需要保留来源文件标识可删除下一行
    data['来源文件'] = os.path.basename(f)
    df_list.append(data)

# 纵向拼接所有数据
df_final = pd.concat(df_list, ignore_index=True)
# 导出结果
df_final.to_excel('Combine.xls', index=False)

情况2:第一个文件存A、B列,第二个文件存C列,需按行对应横向拼接成完整的A+B+C列表

!pip install xlrd xlwt openpyxl pandas
import pandas as pd

# 读取第一个文件取A、B列
df1 = pd.read_excel('MOMO摩天-專品商品名稱購買人數.xls', sheet_name='Sheet1', usecols=[0,1])
# 读取第二个文件取C列
df2 = pd.read_excel('MOMO摩天-專品價格.xls', sheet_name='Sheet1', usecols=[2])

# 横向拼接两表
df_final = pd.concat([df1, df2], axis=1)
# 导出结果
df_final.to_excel('Combine.xls', index=False)

注意事项

  • 如果列有固定名称,可将usecols参数的数字列表替换为列名字符串,例如usecols=['商品名称','购买人数','价格'],避免列顺序变动导致取错数据
  • pandas高版本不再支持直接导出xls格式,导出报错时将文件后缀改为xlsx即可,即df_final.to_excel('Combine.xlsx', index=False)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 14:36:02