暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

如何用用 SQL 操作 Excel 进行数据比对

Limt小龍記 2022-12-16
1313


前情提要

笔者目前从事的工作是数据测试工作,工作中经常会比对迁移后两个不同数据库的差异。因为环境隔离的原因,我们会将两个不同数据库的结果下载到 excel
中保存到本地,然后对两个excle
进行比对。但是excle
比对对于我这种excel
小白来说是个比较困难的事,于是为了偷懒(为了高效哈~)我就冒出了能不能用sql
语句操作excel
比对数据的念头!在笔者的搜寻下找到了一个解决办法~


环境信息

工具/框架作用
python
编程工具
pandas
数据处理框架,将数据转换为dataframe
pandasql
支持使用sql
查询dataframe


代码

    import pandas as pd
    from pandasql import sqldf
    # 需要提前声明全局变量,SQL 解析是会把全局变量名称当作表名
    global test_a
    global test_b


    # 使用 pandas 将 excel 数据转换为 dataframe
    test_a = pd.read_excel("test_a.xlsx")
    test_b = pd.read_excel("test_b.xlsx")
    # 编写 SQL 语句
    query = """SELECT
    test_a.name test_a_name,
    test_b.name test_b_name,
    CASE WHEN test_a.name = test_b.name
    THEN '一致' ELSE '不一致' END `name比对结果`,
    test_a.age test_a_age,
    test_b.age test_b_age,
    CASE WHEN test_a.age = test_b.age
    THEN '一致' ELSE '不一致' END `age比对结果`,
    CASE WHEN test_a.name = test_b.name AND test_a.age = test_b.age
    THEN '数据全部一致' ELSE '数据不一致' END `数据比对结果`
    FROM test_a left join test_b ON test_a.id = test_b.id
    """
    # 使用 pandasql.sqldf 执行语句生成执行结果
    sqldf(query).to_excel("res.xlsx",index=False)



    执行结果

    test_a

    test_b

    比对结果

    文章转载自Limt小龍記,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

    评论