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:\temp\test2.csv";
string[] csvlines = File.ReadAllLines(filename);
var q1 = from csvline in csvlines.Skip(1)
let data = csvline.Split(',')
select data;
var filename2 = @"d:\temp\test3.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();

 

 

比较两个CSV的方法的探索的更多相关文章

  1. Set集合对象比较两个元素的方法

    Set集合对象比较两个元素的方法并不是根据“equals()”方法的返回值来比较.而是用“hashCode()”方法来进行判断.只要两个元素的“hashCode()”方法的返回值相同,就认为两个元素相 ...

  2. Java中取小数点后两位(四种方法)

    摘自http://irobot.iteye.com/blog/285537 Java中取小数点后两位(四种方法)   一 Long是长整型,怎么有小数,是double吧     java.text.D ...

  3. NSIS:延时启动软件的几个方法及探索

    原文NSIS:延时启动软件的几个方法及探索 有时候,我们想要某软件开机启动,但又不要拖慢开机速度,那么,延时启动技术就显得比较重要了.轻狂在这方面曾经研究过,也实现了自己想要的功能,看看我是怎么做的吧 ...

  4. JS合并两个数组的方法

    JS合并两个数组的方法 我们在项目过程中,有时候会遇到需要将两个数组合并成为一个的情况.比如: var a = [1,2,3]; var b = [4,5,6]; 有两个数组a.b,需求是将两个数组合 ...

  5. GET和POST两种基本请求方法(转自博主--在途中#)

    GET和POST两种基本请求方法的区别 GET和POST是HTTP请求的两种基本方法,要说它们的区别,接触过WEB开发的人都能说出一二. 最直观的区别就是GET把参数包含在URL中,POST通过req ...

  6. python读取两个csv文件数据,进行查找匹配出现次数

    现有需求 表1 表2 需要拿表1中的编码去表2中的门票编码列匹配,统计出现的次数,由于表2编码列是区域间,而且列不是固定的,代码如下 #encoding:utf-8 ##导入两个CSV进行比对 imp ...

  7. 转:GET和POST两种基本请求方法的区别

    原文地址:GET和POST两种基本请求方法的区别 原文如下: GET和POST是HTTP请求的两种基本方法,要说它们的区别,接触过WEB开发的人都能说出一二. 最直观的区别就是GET把参数包含在URL ...

  8. ToString()格式和用法大全,C#实现保留两位小数的方法

    C,货币,2.5.ToString("C"),¥2.50.D,十进制数,25.ToString("D5"),00025.E,科学型,25000.ToString ...

  9. python 爬虫数据存入csv格式方法

    python 爬虫数据存入csv格式方法 命令存储方式:scrapy crawl ju -o ju.csv 第一种方法:with open("F:/book_top250.csv" ...

随机推荐

  1. Java学习:内部类的概念于分类

    内部类的概念于分类 如果一个事物的内部类包含另一个事物,那么这就是一个类内部包含另一个类.例如:身体和心脏的关系,又如:汽车和发动机的关系. 分类 成员内部类 局部内部类(包含匿名内部类) 成员内部类 ...

  2. sqlserver读取日志以及复制

    首选,在事务日志中,到底有多少是需要复制的?使用以下命令,可以确定事务日志中被标志为复制的命令有多少. USE test GO SELECT count(*) FROM ::fn_dblog(NULL ...

  3. [转] Vue原理解析——自己写个Vue

    一.Vue对比其他框架原理 Vue相对于React,Angular更加综合一点.AngularJS则使用了“脏值检测”. React则采用避免直接操作DOM的虚拟dom树.而Vue则采用的是 Obje ...

  4. Maven:repositories、distributionManagement、pluginRepositories中repository的区别

    本文链接:https://blog.csdn.net/netyeaxi/article/details/95804076 目录 一.repositories中的repository 二.distrib ...

  5. 整理:WPF中Xaml中绑定枚举的写法

    原文:整理:WPF中Xaml中绑定枚举的写法 目的:在Combobox.ListBox中直接绑定枚举对象的方式,比如:直接绑定字体类型.所有颜色等枚举类型非常方便 一.首先用ObjectDataPro ...

  6. spring mvc 服务器端输出一条可执行js

    @RequestMapping(value = "/test",produces = "text/html; charset=UTF-8") @Response ...

  7. Docker中上传镜像到docker hub中

    原文参考:https://blog.csdn.net/sk_grace/article/details/81220675 申请Docker hub账号首先在https://hub.docker.com ...

  8. vue + yarn 项目开发 (一)

    1.打开src文件夹中的main.js文件,添加引用element ui框架 import ElementUI from 'element-ui' import 'element-ui/lib/the ...

  9. mysql 查询当天数据

    查询当天数据 select * from tab where FROM_UNIXTIME(fabutime, '%Y%m%d') = 20121217;   mysql TO_DAYS(date) 函 ...

  10. 排序算法的c++实现——快速排序

    快速排序是分治思想的又一典型代表,是应用最广的排序算法.分治思想就是把原问题的解分解为两个或多个子问题解,求解出子问题的解之后再构造出原问题的解. 在快速排序算法中,它的思想是把一个待排序的数组分成前 ...