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

如何用Python判断列值是否在另一列,无匹配则追加对应行到表格

Python实现Excel两表项目匹配追加方案

前置依赖安装

首先安装处理Excel需要的第三方库,在终端执行以下命令:
pip install pandas openpyxl

实现逻辑

  • 读取目标Excel文件中sheet1、sheet2的全量数据
  • 提取sheet2中Projects列的所有非重复值,转为集合提升匹配效率
  • 筛选sheet1里Projects值不在上述集合中的行,即需要追加的目标行
  • 以追加模式打开Excel文件,把筛选出的行写入sheet1末尾,不覆盖原有数据

完整可运行代码

import pandas as pd
from openpyxl import load_workbook

# -------------------------- 请修改以下配置为你自己的文件信息 --------------------------
file_path = "你的Excel文件完整路径.xlsx"  # 示例:"D:/工作文档/项目统计表.xlsx"
sheet1_name = "sheet1"  # 如果工作表改了名称,填写实际名称即可
sheet2_name = "sheet2"
target_column = "Projects"  # 用于匹配的列名,确保两个表列名完全一致
# -----------------------------------------------------------------------------------

# 读取两个工作表数据
df_sheet1 = pd.read_excel(file_path, sheet_name=sheet1_name)
df_sheet2 = pd.read_excel(file_path, sheet_name=sheet2_name)

# 生成sheet2的项目匹配集合,自动过滤空值
sheet2_project_set = set(df_sheet2[target_column].dropna().unique())

# 筛选sheet1中未在sheet2出现的项目对应行
need_append_rows = df_sheet1[~df_sheet1[target_column].isin(sheet2_project_set)]

if not need_append_rows.empty:
    # 追加模式打开文件,不覆盖原有内容
    with pd.ExcelWriter(
        file_path,
        engine="openpyxl",
        mode="a",
        if_sheet_exists="overlay"
    ) as writer:
        # 定位到sheet1现有内容的最后一行,追加时不重复写入表头
        append_start_row = writer.book[sheet1_name].max_row
        need_append_rows.to_excel(
            writer,
            sheet_name=sheet1_name,
            index=False,
            header=False,
            startrow=append_start_row
        )
    print(f"处理完成,共追加{len(need_append_rows)}条未匹配行到sheet1")
else:
    print("sheet1所有项目均在sheet2存在匹配项,无需追加内容")

运行注意事项

  • 运行代码前请关闭正在打开的目标Excel文件,否则会触发权限报错
  • 请确认两个表的Projects列名完全一致,注意区分大小写、前后多余空格,列名不匹配会导致运行失败
  • 首次运行前建议备份原Excel文件,避免误操作丢失数据
  • 如果你的文件是.xls格式,请先另存为.xlsx格式再运行,上述依赖库对新版xlsx格式兼容性最好

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 13:21:26