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

如何基于共有列合并两个Excel文件生成含全量有序信息的新文件

解决方案

你原本的嵌套循环写法不仅执行效率极低,逻辑也存在问题(for x in df1实际是遍历表的列名而非行数据),Pandas提供了原生的merge方法专门实现基于公共列的多表匹配合并,无需手动遍历匹配。

可直接运行的正确代码

import pandas as pd

# 读取两个源Excel文件
df1 = pd.read_excel(r'C:/Users/User/Desktop/UTP/Trabajo Alvaro_Christian/CE.xlsx')
df2 = pd.read_excel(r'C:/Users/User/Desktop/UTP/Trabajo Alvaro_Christian/Matricula.xlsx')

# 按公共列合并两个表
merged_df = pd.merge(
    left=df1,
    right=df2,
    # 此处填入你3个公共列的列名,已按你代码里的两个列示例,第三个自行补充
    on=['COD_PERIODO', 'TERCERO', '第三个公共列的列名'],
    how='inner'
)

# 导出合并结果,index=False表示不把Pandas的行索引写入Excel
merged_df.to_excel('FinalData.xlsx', index=False)

参数说明

  • on参数:传入所有用来做匹配依据的公共列名列表,要求两个表中这些列的列名完全一致;如果两个表的匹配列名不同,可以用left_on和right_on分别指定左右表对应的匹配列
  • how参数:控制合并时的行保留规则,常用可选值:
    • inner:默认值,只保留两个表公共列值完全匹配的行,也就是取两个表的交集
    • left:保留左侧df1的所有行,右侧df2匹配不到的位置自动填充空值
    • right:保留右侧df2的所有行,左侧df1匹配不到的位置自动填充空值
    • outer:保留两个表的所有行,匹配不到的位置自动填充空值

如果你发现合并后匹配到的行数远低于预期,优先检查公共列的数据格式是否一致,比如一个表的COD_PERIODO是数字类型、另一个是字符串类型会导致匹配失败,统一格式后再合并即可。

内容的提问来源于stack exchange,提问作者Juan Alejandro Orozco Ospina

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 02:15:03