现有需求 表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文件数据,进行查找匹配出现次数的更多相关文章

  1. java 两个csv文件数据去重

    1.pom.xml配置 <dependency> <groupId>commons-io</groupId> <artifactId>commons-i ...

  2. python读取和写入csv文件

    读取csv文件: def readCsv(): rows=[] with file(r'E:\py\py01\Data\system.csv','rb') as f: reads=csv.reader ...

  3. python读取并写入csv文件

    在ubuntu下,新建.csv文件的方法是使用LibreOffice来创建一个数据表,然后我们把表格存储为.csv的格式: “Save as”菜单把我们的表格存为一个CSV的文件格式:命名为csvDa ...

  4. CSV文件数据如何读取、导入、导出到新的CSV文件中以及CSV文件的创建

    CSV文件数据如何读取.导入.导出到新的CSV文件中以及CSV文件的创建 一.csv文件的创建 (1)新建一个文本文档: 打开新建文本文档,进行编辑. 注意:关键字与关键字之间用英文半角逗号隔开.第一 ...

  5. python读取与写入csv,txt格式文件

    python读取与写入csv,txt格式文件 在数据分析中经常需要从csv格式的文件中存取数据以及将数据写书到csv文件中.将csv文件中的数据直接读取为dict类型和DataFrame是非常方便也很 ...

  6. java读取目录下所有csv文件数据,存入三维数组并返回

    package dwzx.com.get; import java.io.BufferedReader; import java.io.File; import java.io.FileReader; ...

  7. C#使用Linq to csv读取.csv文件数据

    前言:今日遇到了一个需要读取CSV文件类型的EXCEL文档数据的问题,原本使用NPOI的解决方案直接读取文档数据,最后失败了,主要是文件的类型版本等信息不兼容导致.其他同事有使用linq to csv ...

  8. C语言进行csv文件数据的读取

    C语言进行csv文件数据的读取: #include <stdio.h> #include <string.h> #include <malloc.h> #inclu ...

  9. jmeter参数化、添加变量、生成随机数和导入csv文件数据

    Remarks:本次使用jmeter版本为4.0 以下数据都在必应中演示: 添加普通变量 1.添加 User Defined Variables(用户自定义变量) 2.设置变量 3.使用变量 4.查看 ...

随机推荐

  1. java:给图片上加水印

    import java.awt.Color; import java.awt.Graphics2D; import java.awt.Image; import java.awt.image.Buff ...

  2. vcf格式文件转化为Excel(csv)格式文件(R语言的write.csv,write.table功能,Excel表的文件导入功能)

    最近在整理文件,准备把vcf文件转化为Excel格式,或者CSV格式,网上搜了一堆资料,还真有人专门开发出转化格式的工具:叫vcf2csv(下载地址http://vcf2csv.sourceforge ...

  3. Spring MVC程序中怎么得到静态资源文件css,js,图片文件的路径问题

    问题描述 在用springmvc开发应用程序的时候.对于像我一样的初学者,而且还是自学的人,有一个很头疼的问题.那就是数据都已经查出来了,但是页面的样式仍然十分简陋,加载不了css.js,图片等资源文 ...

  4. MySQL开启远程连接的方法

    默认情况下,mysql只允许本地登录,如果要开启远程连接,则需要修改/etc/mysql/my.conf文件. 一.修改/etc/mysql/my.conf找到bind-address = 127.0 ...

  5. ajax跨域原理和cors跨域资源共享

    不需要设置前端太多,只需要在服务端是在请求头,使服务端的回复数据可以正常通过浏览器的限制,进入网站 首先说下简单请求和非简单请求: 简单请求:必须满足下列条件 1.请求方式:head,get,post ...

  6. 使用bootstrap的相关配置

    <html> <head> <title>java微辅导</title> <meta charset="UTF-8"/> ...

  7. Python探测主机端口是否存活

    #!/usr/bin/python3 import socket sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) result = s ...

  8. ELF文件解析(一):Segment和Section

    ELF 是Executable and Linking Format的缩写,即可执行和可链接的格式,是Unix/Linux系统ABI (Application Binary Interface)规范的 ...

  9. 揭秘VxWorks——直击物联网安全罩门

      转载:http://chuansong.me/n/1864339 VxWorks是美国风河(WindRiver)公司于1983年设计开发的一种嵌入式实时操作系统(RTOS),是嵌入式开发环境的关键 ...

  10. Java基础编程题——水仙花数

    package com.yangzl.basic; /** * 题目:打印出所有的"水仙花数". * 所谓"水仙花数"是指一个三位数, * 其各位数字立方和等于 ...