比较两个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:\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的方法的探索的更多相关文章
- Set集合对象比较两个元素的方法
Set集合对象比较两个元素的方法并不是根据“equals()”方法的返回值来比较.而是用“hashCode()”方法来进行判断.只要两个元素的“hashCode()”方法的返回值相同,就认为两个元素相 ...
- Java中取小数点后两位(四种方法)
摘自http://irobot.iteye.com/blog/285537 Java中取小数点后两位(四种方法) 一 Long是长整型,怎么有小数,是double吧 java.text.D ...
- NSIS:延时启动软件的几个方法及探索
原文NSIS:延时启动软件的几个方法及探索 有时候,我们想要某软件开机启动,但又不要拖慢开机速度,那么,延时启动技术就显得比较重要了.轻狂在这方面曾经研究过,也实现了自己想要的功能,看看我是怎么做的吧 ...
- JS合并两个数组的方法
JS合并两个数组的方法 我们在项目过程中,有时候会遇到需要将两个数组合并成为一个的情况.比如: var a = [1,2,3]; var b = [4,5,6]; 有两个数组a.b,需求是将两个数组合 ...
- GET和POST两种基本请求方法(转自博主--在途中#)
GET和POST两种基本请求方法的区别 GET和POST是HTTP请求的两种基本方法,要说它们的区别,接触过WEB开发的人都能说出一二. 最直观的区别就是GET把参数包含在URL中,POST通过req ...
- python读取两个csv文件数据,进行查找匹配出现次数
现有需求 表1 表2 需要拿表1中的编码去表2中的门票编码列匹配,统计出现的次数,由于表2编码列是区域间,而且列不是固定的,代码如下 #encoding:utf-8 ##导入两个CSV进行比对 imp ...
- 转:GET和POST两种基本请求方法的区别
原文地址:GET和POST两种基本请求方法的区别 原文如下: GET和POST是HTTP请求的两种基本方法,要说它们的区别,接触过WEB开发的人都能说出一二. 最直观的区别就是GET把参数包含在URL ...
- ToString()格式和用法大全,C#实现保留两位小数的方法
C,货币,2.5.ToString("C"),¥2.50.D,十进制数,25.ToString("D5"),00025.E,科学型,25000.ToString ...
- python 爬虫数据存入csv格式方法
python 爬虫数据存入csv格式方法 命令存储方式:scrapy crawl ju -o ju.csv 第一种方法:with open("F:/book_top250.csv" ...
随机推荐
- 查看电脑已保存的wifi及密码
1. 查看以保存的wifi名称 打开cmd(win+r) #查看已保存WiFi名称 netsh wlan show profiles 2. 查看已保存的wifi的密码 netsh wlan show ...
- CentOS 6.x安装php 5.6和redis扩展的全过程
安装PHP 5.6 #yum clean all #yum update 整体升级一下yum包 #yum install -y epel-release #yum list installed | g ...
- Mysql系列(六)—— MySQL索引介绍
前言 索引种类 索引维护 如何使用索引 一.索引索引种类 MySQL中索引主要包含以下几种: 普通索引 唯一索引 主键索引 联合索引 全文索引 二.索引维护 在简述了索引的类型后,再来了解下如何维护索 ...
- SpringBoot中使用@scheduled定时执行任务需要注意的坑
spring boot: 计划任务@ EnableScheduling和@Scheduled @Scheduled中的参数说明 @Scheduled(fixedRate=2000):上一次开始执行时间 ...
- vant-ui rem问题
使用vant-ui时rem单位问题 vue-cli3.x项目引入vant-ui1.6.21,要求在项目中使用rem单位,但vant是px的.故,需要添加一个自动转换插件和一段修改html根元素的fon ...
- CDN: trunk Repo update failed - CocoaPods
解决方案: 1.podfile文件中添加source源: source 'https://github.com/CocoaPods/Specs.git' 2.执行 pod repo remove t ...
- JS项目练习之求和(包含正则表达式验证)
最近在准备专升本,抽一点时间敷衍一下大家!!!嘿嘿嘿!!! 话不多说,上代码: <!DOCTYPE html> <html lang="zh-CN"> &l ...
- 剑指前端(前端入门笔记系列)——Math对象
Math对象 ECMAScript将一些常用的数学公式和信息封装到了一个对象中——Math对象,为我们实现数学方面的计算功能提供了便捷,而且该对象还提供了辅助完成这些计算的属性和方法 属性 con ...
- CSRF攻击与防御(转)
CSRF概念:CSRF跨站点请求伪造(Cross—Site Request Forgery),跟XSS攻击一样,存在巨大的危害性,你可以这样来理解: 攻击者盗用了你的身份,以你的名义发送 ...
- Linux 下的7种文件类型
普通文件类型 (-)Linux中最多的一种文件类型, 包括 纯文本文件(ASCII):二进制文件(binary):数据格式的文件(data);各种压缩文件.第一个属性为 [-] ,这些文件一般是用一些 ...