zoukankan      html  css  js  c++  java
  • 比较两个CSV的方法的探索

    1.开始时,我用ultraEdit来简单比较,需要排序,而且比较的结果也有限

    2.Excel也有这样的功能,可是好复杂

    3.而后,发现dbeaver这个tools,利用JDBC Driver(csvjdbc-1.0.35.jar)支持对CSV查询

    但原来不支持将两个CSV文件用join的方法来比较,白忙活一场

    4.那么我又想起了万能的pathron,利用pandas就可以在命令行比较csv啦。

    可行倒是可行,可是不直观。。。还是不爽

    import pandas as pd
    
    f1 = pd.read_csv('C:\user\file1.csv)
    f2 = pd.read_csv('C:\user\file2.csv')
    
    f3 = pd.concat([f2, f1[~f1.column1.isin(f2.column1)]])
    print(f3)

     

    5.想起了linqpad这个工具,当时还觉得有点鸡肋,现在回顾起来,可以直接读取XML文件进行转换,也可以用linq的格式读CSV文件

    真是远在天边,近在眼前,简直是利器

    String filename = @"d:	emp	est2.csv";
    string[] csvlines = File.ReadAllLines(filename);
    var q1 = from csvline in csvlines.Skip(1)
    		  let data = csvline.Split(',')
    		  select data;
    var filename2 = @"d:	emp	est3.csv";
    string[] csvlines2 = File.ReadAllLines(filename2);
    var q2 = from csvline in csvlines2.Skip(1)
    		  let data = csvline.Split(',')
    		  select data;
    var q = from a in q1
    		join b in q2 on a[1] equals b[1]
    		where a[2] != b[2]
    		select new {
    		col1 = a[0],
    		col2 = a[1],
    		col3 = a[2],
    		col34= b[2]
    		};
    q.Dump();		
    

     

     

  • 相关阅读:
    Java中的流
    多种日志收集工具比较
    UML类图几种关系的总结
    从数组中找出第K大的数
    数组各种排序算法和复杂度分析
    时间复杂度和空间复杂度
    Java Classloader原理分析
    WebSocket
    TCP/IP详解--TCP连接中TIME_WAIT状态过多
    TCP协议
  • 原文地址:https://www.cnblogs.com/sui84/p/11832166.html
Copyright © 2011-2022 走看看