python读取两个csv文件数据,进行查找匹配出现次数
现有需求 表1

表2

需要拿表1中的编码去表2中的门票编码列匹配,统计出现的次数,由于表2编码列是区域间,而且列不是固定的,代码如下
#encoding:utf-8
##导入两个CSV进行比对
import csv
##读取编码
def GetQrCode(filePath):
#定义一个空的list集合
list = set()
csv_file = csv.reader(open(filePath, 'r'))
for item in csv_file:
# 判断字符串是否为纯数字
if (item[0].isdigit()):
##将正常的编码存储到集合
yield item[0] def GetNumberList(filePath):
csv_file = csv.reader(open(filePath, 'r'))
#去掉表头
flag=True
for item in csv_file:
if flag:
# 去掉表头
flag=False
continue
if len(item) > 1:
yield item if __name__ == '__main__':
#定义字典装结果集
dicList={} #获取编码列表
qrcodelist=GetQrCode('E:\\new_qrcode.csv')
#获取要匹配的号段list
numberList=GetNumberList('E:\\门票统计汇总 - 副本.csv')
isBreak=False
for qrcode in qrcodelist: ##最外层全部的qrcode
#print(qrcode)
#注意,这里要讲list转换为列表,否则循环过的元素不会重复进行
numberList=list(numberList)
for numbers in numberList: ##号段里的每一行
if isBreak:
isBreak=False break
numbers=[i for i in numbers if i != '']
numbers=list(numbers)
for number in numbers:
if number!=numbers[0]: #单个号段
if number !='':
#判断一组还是两组
numberLength=len(str(number).split('-'))
if numberLength>1:
#两组的
firstNumber=int(str(number).split('-')[0])
lastNumber=int(str(number).split('-')[1])
#print("first:"+str(firstNumber)+":"+str(lastNumber))
qrcode=int(qrcode) if qrcode>=firstNumber and qrcode<=lastNumber:
if numbers[0] in dicList.keys():
dicList[numbers[0]]=int(dicList[numbers[0]])+1
else:
dicList[numbers[0]] =1
isBreak=True
break
else:
#一组的
#print(str(number))
firstNumber = int(number) if qrcode==firstNumber:
if numbers[0] in dicList.keys():
dicList[numbers[0]]=int(dicList[numbers[0]])+1
else:
dicList[numbers[0]] =1
isBreak = True
break #讲结果集写入csv文件
# 打开文件,追加a
out = open('E:\\resut_1.csv', 'w', newline='') # 设定写入模式
csv_write = csv.writer(out, dialect='excel')
# 写入具体内容
csv_write.writerow(['渠道名称','次数']) for item in dicList:
print(item+":"+str(dicList[item]))
csv_write.writerow([item,str(dicList[item])])
out.close()
导出数据结果:

python读取两个csv文件数据,进行查找匹配出现次数的更多相关文章
- java 两个csv文件数据去重
1.pom.xml配置 <dependency> <groupId>commons-io</groupId> <artifactId>commons-i ...
- python读取和写入csv文件
读取csv文件: def readCsv(): rows=[] with file(r'E:\py\py01\Data\system.csv','rb') as f: reads=csv.reader ...
- python读取并写入csv文件
在ubuntu下,新建.csv文件的方法是使用LibreOffice来创建一个数据表,然后我们把表格存储为.csv的格式: “Save as”菜单把我们的表格存为一个CSV的文件格式:命名为csvDa ...
- CSV文件数据如何读取、导入、导出到新的CSV文件中以及CSV文件的创建
CSV文件数据如何读取.导入.导出到新的CSV文件中以及CSV文件的创建 一.csv文件的创建 (1)新建一个文本文档: 打开新建文本文档,进行编辑. 注意:关键字与关键字之间用英文半角逗号隔开.第一 ...
- python读取与写入csv,txt格式文件
python读取与写入csv,txt格式文件 在数据分析中经常需要从csv格式的文件中存取数据以及将数据写书到csv文件中.将csv文件中的数据直接读取为dict类型和DataFrame是非常方便也很 ...
- java读取目录下所有csv文件数据,存入三维数组并返回
package dwzx.com.get; import java.io.BufferedReader; import java.io.File; import java.io.FileReader; ...
- C#使用Linq to csv读取.csv文件数据
前言:今日遇到了一个需要读取CSV文件类型的EXCEL文档数据的问题,原本使用NPOI的解决方案直接读取文档数据,最后失败了,主要是文件的类型版本等信息不兼容导致.其他同事有使用linq to csv ...
- C语言进行csv文件数据的读取
C语言进行csv文件数据的读取: #include <stdio.h> #include <string.h> #include <malloc.h> #inclu ...
- jmeter参数化、添加变量、生成随机数和导入csv文件数据
Remarks:本次使用jmeter版本为4.0 以下数据都在必应中演示: 添加普通变量 1.添加 User Defined Variables(用户自定义变量) 2.设置变量 3.使用变量 4.查看 ...
随机推荐
- poj 2976(二分搜索+最大化平均值)
传送门:Problem 2976 参考资料: [1]:http://www.hankcs.com/program/cpp/poj-2976-dropping-tests-problem-solutio ...
- struts下载
struts下载地址:http://struts.apache.org/download.cgi
- vue2.0 之计算属性和数据监听
计算属性computed <template> <div> <input type="text" name="" v-model= ...
- 安装MACOS操作步骤详解
安装MACOS操作步骤详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 关于安装MAC的操作系统其实大家都知道可以让客服帮忙提供软件上的支持,而且苹果客服都很有礼貌呢,而且非常的 ...
- 学习windows编程 day3 之窗口绘画一:点线绘制
#include <windows.h> #include <math.h> LRESULT CALLBACK WndProc(HWND hwnd, UINT message, ...
- SGU 271 Book Pile
There is a pile of N books on the table. Two types of operations are performed over this pile: - a b ...
- 通过COM组件方式实现java调用C#写的DLL文件 转
最近一段时间单位在做一个Web项目,工程师用JAVA语言,需要公用人员信息,统一用户名和密码,原有的平台中是用C#语言开发的,在网上查找解决方法,通过JAVA调用C#的DLL文件实现.网上资料很多,自 ...
- Nginx 防盗链配置
防盗链一般都是流媒体配置 location ~* \.(jpg|jpeg|png|bmg|swf|mp4|mp4|mmf|zip|rar|swf|flv)$ { // 对jpg|jpeg|png|bm ...
- 定时器QTimer
import sys from PyQt5.QtCore import QTimer, Qt from PyQt5.QtWidgets import QApplication, QWidget, QP ...
- Java SE之浅谈JDK SDK JRE
JDK(Java Development Kit): 1.定义:编写Java程序的程序员使用的软件开发工具包,又被称为Java SDK (Java Software Development Kit ...