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

使用Python Pandas对比不同Excel表格列并移除重复值

使用Pandas移除跨Excel文件重复列值的方法

核心思路

先读取两个Excel文件的数据,提取需要对比的列,把要排除的值存成集合(大幅提升查询效率),再用isin()加取反操作过滤掉文件1中重复的值,最后可按需保存结果。

完整代码示例

import pandas as pd

# 替换成你的实际文件路径和工作表名称
df1 = pd.read_excel("文件1.xlsx", sheet_name="表格1")
df2 = pd.read_excel("文件2.xlsx", sheet_name="表格2")

# 获取需要排除的值集合(假设两列列名都是"Age",按需替换)
exclude_ages = set(df2["Age"].dropna())

# 过滤文件1:保留Age不在排除集合里的行
filtered_df = df1[~df1["Age"].isin(exclude_ages)]

# 可选:将过滤后的结果保存为新Excel文件
filtered_df.to_excel("过滤后的文件1.xlsx", index=False)

代码细节解释

  • 读取文件:pd.read_excel()负责加载Excel数据,需确保文件路径正确,sheet_name可指定工作表名称或索引(比如0代表第一个工作表)。
  • 构建排除集合:把文件2的目标列转成集合,同时用dropna()去掉空值——集合的成员查询速度远快于DataFrame列查询,数据量大时优势明显。
  • 过滤数据:df1["Age"].isin(exclude_ages)生成布尔值序列,标记哪些值在排除列表里;前面加~取反,就得到需要保留的行。
  • 保存结果:to_excel()把过滤后的数据写入新文件,index=False避免把Pandas自动生成的索引列写入Excel。

注意事项

  • 如果两个文件的目标列名不同(比如文件1是"年龄"、文件2是"Age"),需对应替换代码里的列名。
  • 若不需要删除空值,可去掉.dropna(),但空值不会匹配任何数值,一般不影响最终结果。
  • 需求中"从对应列移除重复值"本质是删除包含重复值的整行,上述代码正好实现此效果,同时保留其他列的内容。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 18:25:29