使用Python合并多份Excel文件至主文件,避免重复值
实现思路
1. 文件读取与准备
- 用
pandas库读取主文件并转为DataFrame,先确定唯一标识列(比如项目ID、专属编号这类能定位同一项目的字段),后续靠它匹配不同文件里的同一项数据 - 逐个读取子文件,同样转为DataFrame,保留好对应的唯一标识列
2. 核心匹配填充操作
- 先过滤子文件的列:只保留主文件中存在的列,多余列直接剔除,比如用
df_sub = df_sub[list(main_df.columns)] - 用
pandas的update()方法实现精准填充:先把子文件按唯一标识列设为索引,再执行main_df.update(df_sub.set_index('唯一标识列'))。这个操作会自动按唯一标识匹配行,用子文件的非空值覆盖主文件对应位置的内容,不会新增重复行,也不会乱填无关列 - 如果需要用多列组合作为唯一匹配键,就把这些列一起设为联合索引,比如
main_df.set_index(['列A','列B'], inplace=True),子文件做同样处理后再执行update
3. 特殊场景处理
- 子文件含主文件没有的新项目:如果需要新增这些项目,先筛选出主文件中不存在的行,用
pd.concat([main_df, new_rows])追加到主文件后再做填充;不需要的话直接跳过这些行 - 空值处理:提前清洗子文件的空值,比如用
df_sub.fillna('')或按业务逻辑填充,避免空值覆盖主文件里的有效数据
4. 结果保存
- 所有子文件处理完成后,将更新后的主DataFrame保存为Excel文件,用
main_df.to_excel('最终主文件.xlsx', index=False),避免把索引列写入文件
内容的提问来源于stack exchange,提问作者Raja
相关产品推荐
相关产品推荐

