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

如何使用Python(pandas)批量对比Df1的column1与多表同名列

批量多DataFrame同名列对比实现方案

已知前提

  • Df1为SQL语句select * from emp_table的查询结果,作为对比基准,对应Table1
  • Df2、Df3…Df100及后续新增Df,分别对应company_table等不同业务表的SQL查询结果
  • 已掌握单组列对比的基础写法:
# 原有单组对比代码
s1 = Df1.column1
s2 = Df2.column1
s1.compare(s2, keep_shape=True, keep_equal=True)
  • 需求:以Df1的column1列为基准,逐行和其余所有表的column1列做值比对,值匹配标记为pass,不匹配标记为fail,方案需支持后续动态新增待对比表,无需反复修改核心逻辑。

实现步骤

1. 统一管理待对比DataFrame

不要用零散的独立变量存Df2、Df3…Df100,把所有非基准表存在字典里,后续新增表只需往字典加键值对即可,不用动核心对比代码:

import pandas as pd

# 固定基准表和基准对比列
base_df = Df1
base_compare_col = base_df["column1"]

# 待对比表字典:key为表标识(自定义即可),value为对应DataFrame
# 后续新增表直接在字典里追加键值对就行
compare_tables = {
    "Table2": Df2,
    "Table3": Df3,
    "Table4": Df4,
    # 此处省略Df5到Df100的配置,按相同格式补全即可
}

注意:对比前必须确认所有待对比DataFrame的行数、行顺序和Df1完全一致,否则逐行对比会出现索引错位。如果各表行顺序不统一,要先拿业务主键做关联合并,对齐行之后再对比,避免结果错误。

2. 封装单组对比逻辑

把单组列的对比逻辑封装成可复用函数,直接输出要求的pass/fail标记:

def single_col_compare(base_series: pd.Series, target_df: pd.DataFrame, col_name: str = "column1") -> pd.Series:
    """
    输入基准列序列、目标DataFrame、待对比列名,逐行返回pass/fail对比结果
    """
    target_series = target_df[col_name]
    # 逐行判断值是否相等
    res = []
    for base_val, target_val in zip(base_series, target_series):
        if base_val == target_val:
            res.append("pass")
        else:
            res.append("fail")
    return pd.Series(res, index=base_series.index)

如果需要查看具体差异值,可以在函数里额外调用你之前使用的compare方法存差异详情,上面的写法直接输出你需要的pass/fail标记,更贴合当前需求。

3. 批量执行对比,汇总结果

遍历待对比表字典,循环调用对比函数,把所有结果合并成一张总表方便查看:

# 初始化结果表,先放入基准列的值,方便逐行核对
final_result = pd.DataFrame({
    "基准表_column1值": base_compare_col
})

# 循环批量完成所有表的对比
for table_name, df in compare_tables.items():
    final_result[f"{table_name}_对比结果"] = single_col_compare(base_compare_col, df)

# 打印或导出结果
print(final_result)

最终输出的结果表中,每一行对应基准表Df1的一条数据,每一列对应一个待对比表的比对结果,直接查看pass/fail标记即可知道值是否匹配。

后续新增表的适配方法

后续如果新增Df101、Df102等新的待对比表,不需要修改任何对比逻辑,只需要在最开始定义的compare_tables字典里新增一行对应的键值对,重新运行代码就会自动把新表加入对比流程。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 13:57:13