问下数据对比有什么好用的工具或者方法吗? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
whasyt
V2EX    程序员

问下数据对比有什么好用的工具或者方法吗?

  •  
  •   whasyt 2020-11-03 10:03:36 +08:00 2643 次点击
    这是一个创建于 1808 天前的主题,其中的信息可能已经有所发展或是发生改变。

    现在项目做的数据开发后,会在开发环境数据库导入一部分测试数据,验证算法并且得到我的结果数据,我的结果数据从数据库中导出为 excel 表格 同时研究部门也会用同样的源数据用 python 计算得到一份结果数据作为标准数据,导出为 excel 表格, 再将两个表格做对比,问题是现在步骤太繁琐了,而且 excel 对比需要一一对数据主键排序保证行行对等,并且比对数据,请问能否有一种专业的数据比对工具或者方法简化比对的流程呢?

    16 条回复    2020-11-03 14:13:16 +08:00
    newmlp
        1
    newmlp  
       2020-11-03 10:08:49 +08:00
    csv 不行么
    whasyt
        2
    whasyt  
    OP
       2020-11-03 10:16:57 +08:00
    @newmlp c#1 csv 还是得排序,比如某天某个种类某个产品某个值,要对应起来
    ZeroUpdate
        3
    ZeroUpdate  
       2020-11-03 10:18:30 +08:00
    Beyond Compare
    dswyzx
        4
    dswyzx  
       2020-11-03 11:10:50 +08:00
    一个大胆的想法,双方规范一个排序规则,所有数据写成一个字符串,然后取 md5 一下
    whasyt
        5
    whasyt  
    OP
       2020-11-03 11:16:26 +08:00
    @ZeroUpdate #3 内网没有这个工具..文本比对也想过了,还是要经过排序、转格式、、等等
    imn1
        6
    imn1  
       2020-11-03 11:16:53 +08:00
    对比是你的工作需求,还是 python 那边的工作需求?
    那边的话,你管他呢,python 对比二维数据不难啊,pandas 做这个是小事一桩
    whasyt
        7
    whasyt  
    OP
       2020-11-03 11:17:00 +08:00
    @dswyzx #4 “一个大胆的想法,双方规范一个排序规则” 现在情况就是数据不规整
    whasyt
        8
    whasyt  
    OP
       2020-11-03 11:17:49 +08:00
    @imn1 #6 我这边以他得为标准啊,那就是我的工作,第二次对比就是他得工作~很繁琐得开发流程
    princelai
        9
    princelai  
       2020-11-03 11:18:58 +08:00
    你用 pandas 读两个表,索引 merge 或者 concat,然后用 isna,notna 看看是否也有 nan,col1/col2 计算误差,是这样吗?
    whasyt
        10
    whasyt  
    OP
       2020-11-03 11:26:33 +08:00
    @princelai #9 对! 用 python 对比是很方便,直接读取 excel
    vicalloy
        11
    vicalloy  
       2020-11-03 11:27:04 +08:00
    为什么不直接用 python 做数据对比,对比结果直接输出成 excel 。
    imn1
        12
    imn1  
       2020-11-03 11:27:45 +08:00
    @whasyt #8
    基本上做数据分析的,对比数据是“日常工作”,基础,相关软件都有这个功能,或者组合出这个功能

    如果你不会 python+pandas,或者其他工具,教你个简单方法,反正对比的原理也是类似
    excel 的话,就假定你的数据量不大( excel 一表也就 6 万条),可以用内存 sql 数据库,弄两个表(或者扔进一个,根据 id 区别就行),用 sql 语法查重、查异、去重……等等操作就是了
    princelai
        13
    princelai  
       2020-11-03 11:29:54 +08:00
    @whasyt #10 既然你会 python,那么你现在的难点是什么?我没弄明白,excel 不方便就自己写点代码呗
    ra1983
        14
    ra1983  
       2020-11-03 11:32:32 +08:00 via Android
    我用的野路子方法,用报表工具,我用 Tableau 建立两个数据源,这样就不局限于 Excel 。然后 join,主键当 dimension 。要对比哪个列,就直接作为 measure
    whasyt
        15
    whasyt  
    OP
       2020-11-03 14:06:15 +08:00
    @vicalloy #11 因为我是写 sql 的,excel 对比数据是为了验证 sql 正确性
    whasyt
        16
    whasyt  
    OP
       2020-11-03 14:13:16 +08:00
    @ra1983 #14 @imn1 #12
    目前的方法要么就直接 excel 肉眼筛选对比,还有一个就是导入数据库查询对比,这样有点繁琐,例如格式转换,例如 python 做出来的结果表表头转化等等...

    @princelai #13 这儿开发环境不允许 pandas~~ 。。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3206 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 30ms UTC 11:28 PVG 19:28 LAX 04:28 JFK 07:28
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86