如何用Python比较Excel多单元格(含字符串与整数)与多列数据
Python实现Excel跨列组合匹配判断
前置依赖
先安装所需的库:
pip install pandas openpyxl
核心代码
以下代码可以自动处理任意行数的Excel数据,完成A+B每行组合与D+E所有行组合的匹配判断:
import pandas as pd # 替换为你的Excel文件路径 excel_path = "你的数据文件.xlsx" df = pd.read_excel(excel_path, engine="openpyxl") # 生成A、B列的每行组合(统一转字符串处理混合类型) df["AB_combined"] = df["A"].fillna("").astype(str) + df["B"].fillna("").astype(str) # 把D、E列的所有组合存入集合(加速查询) de_combined_set = set(df["D"].fillna("").astype(str) + df["E"].fillna("").astype(str)) # 逐行判断AB组合是否存在于DE组合集合中 df["匹配结果"] = df["AB_combined"].apply(lambda x: x in de_combined_set) # 可选:将结果保存到新Excel文件 df.to_excel("匹配结果输出.xlsx", index=False, engine="openpyxl") # 打印查看结果 print(df[["A", "B", "匹配结果"]])
关键细节说明
- 类型统一处理:用
astype(str)把整数、字符串混合的数据转成统一字符串,避免拼接时出现类型错误;fillna("")把空值替换为空字符串,防止出现nan拼接结果。 - 集合加速查询:将D+E的所有组合存入
set,成员查询的时间复杂度是O(1),远快于遍历列表,数据量越大优势越明显。 - 自适应行数:pandas会自动读取Excel的所有行,无需预先指定行数,完全适配你的需求。
内容的提问来源于stack exchange,提问作者Amar
相关产品推荐
相关产品推荐

