当前位置: 首页 > news >正文

备案号 不放在网站上八零云自助建站免费建站平台

备案号 不放在网站上,八零云自助建站免费建站平台,一般使用的分辨率的显示密度,贵州网站制作公司电话首先Excel文件多表对多表之间的匹配(VLOOKUP),有多种办法, 1:将Excel文件导入Mysql或其他数据库,然后将两种表合并成一张表,接着用数据库匹配 2:将两种表内容,复制粘贴到一起,各自分别保存成一张表&#xf…

首先Excel文件多表对多表之间的匹配(VLOOKUP),有多种办法,

1:将Excel文件导入Mysql或其他数据库,然后将两种表合并成一张表,接着用数据库匹配

2:将两种表内容,复制粘贴到一起,各自分别保存成一张表,然后VLOOUP,这是最普通的做法

3:将想要匹配的多张表的匹配项做成json文件,然后合并多个json文件,接着用想要匹配的表依次去匹配合并后的json,这样有个好处,就是速度快,而且是每个单独分开的

我今天分享的是第三种方法,下面我用小例子,来说明一下我的需求:

首先我有三张虚拟表,表头如下,其中字段:【证件号】,是空的,它的值是通过姓名(假设姓名是为一项),去另外3张表里去匹配,当然可能匹配不到

下面是原始表(我工作中遇到的是30张表!!!)

在这里插入图片描述

下面三张是想要匹配的表(我工作中遇到的实际情况是30多张表,每张表90多万行🤣)

在这里插入图片描述

所以到这里,我的需求已经显而易见了,这里的表数据量都是比较少的,实际情况上面也讲了,数据量非常庞大,那么如何解决呢,我分成了4步

第 1 步

先将所有数据转换成csv格式

在这里插入图片描述

代码

import os
import time
import pandas as pd  # 导入pands库
def xlsx2csv():# 读取xlsx数据t1 = time.time()for f in os.listdir("原始表/"):data = pd.read_excel("原始表/" + f, index_col=0)  # 设置index_col=0,写入文件时第一列不会存在序列号data.to_csv("csv版" + f + '.csv', encoding='utf-8')  # 将数据写入csv文件print("写入完成......")t2 = time.time()print(t2 - t1)
xlsx2csv()

第2 步

将匹配项转为json文件

下面这行代码是准备做字典,元组中的第一个参数是键,第二参数是值(可以拼接写法,如d[1]+d[2],或这用符号隔开方便切割,如d[1]+‘-’+d[2])

list_a.append((d[0], d[0])) 1

其实我这个代码是可以包含重复的键的,如若包含重复的键,它会把多个值放在列表里

具体的大家可以查看这篇文章:python一键多值

下面视频中我的值的索引写错了,大家忽略,后来我改了,但是视频已经录好了看🤣

请添加图片描述

代码

import csv
import os
from collections import defaultdict
def write_json():for f in os.listdir("./csv版/"):with open("./csv版/" + f, newline='', encoding='utf-8') as csvfile:# 读取 CSV 文件内容reader = csv.reader(csvfile, delimiter=',', quotechar='"')# 遍历 CSV 文件中的每一行数据print(f, "加载完毕")list_a = []  # 列表用来存放 (A列,B列) 的元组,所有的数据for d in reader:# 处理每一行数据# print(d)list_a.append((d[0], d[0]))  # 这个就不翻译了吧,添加数据d = defaultdict(list)  # 创建字典for key, value in list_a:d[key].append(value)  # 省去了if判断语句,添加字典with open(f"./json文件/{f.split('.')[0]}.json", "w", encoding="utf-8") as f2:f2.write(json.dumps(d, ensure_ascii=False))  # 写入json,防止乱码write_json()

第 3步

合并上一步的json文件。

在这里插入图片描述

代码

import json
import os
def merge_json():# 定义要合并的json文件路径# 定义合并后的json文件路径# 定义一个空的字典,用于存储合并后的json数据merged_data = {}# 遍历所有的json文件,将数据合并到merged_data中for file in os.listdir("./json文件/", ):with open("./json文件/" + file, 'r', encoding="utf-8") as f:data = json.load(f)merged_data.update(data)print(file)# 将合并后的json数据写入到merged_file中with open("合并json/mergr.json", 'w', encoding="utf-8") as f:json.dump(merged_data, f, ensure_ascii=False)  # 防止中文乱码print("合并成功!")merge_json()

第 4 步,最后一步啦!!

1、 把第一步的转换成功的csv文件,放入文件夹【数据源】准备读取

2、加载刚刚合并后的json文件

3、开始匹配

4、保存

请添加图片描述

在这里插入图片描述

奉上完整版代码

'''作者:一晌小贪欢
手机:xxxx
'''# xlsx文件转csv文件
import csv
import json
import os
import time
from collections import defaultdict
import pandas as pd  # 导入pands库def xlsx2csv():# 读取xlsx数据t1 = time.time()for f in os.listdir("原始表/"):data = pd.read_excel("原始表/" + f, index_col=0)  # 设置index_col=0,写入文件时第一列不会存在序列号data.to_csv("csv版" + f + '.csv', encoding='utf-8')  # 将数据写入csv文件print("写入完成......")t2 = time.time()print(t2 - t1)
xlsx2csv()def write_json():for f in os.listdir("./csv版/"):with open("./csv版/" + f, newline='', encoding='utf-8') as csvfile:# 读取 CSV 文件内容reader = csv.reader(csvfile, delimiter=',', quotechar='"')# 遍历 CSV 文件中的每一行数据print(f, "加载完毕")list_a = []  # 列表用来存放 (A列,B列) 的元组,所有的数据for d in reader:# 处理每一行数据# print(d)list_a.append((d[0], d[1]))  # 这个就不翻译了吧,添加数据d = defaultdict(list)  # 创建字典for key, value in list_a:d[key].append(value)  # 省去了if判断语句,添加字典with open(f"./json文件/{f.split('.')[0]}.json", "w", encoding="utf-8") as f2:f2.write(json.dumps(d, ensure_ascii=False))  # 写入json,防止乱码write_json()def merge_json():# 定义要合并的json文件路径# 定义合并后的json文件路径# 定义一个空的字典,用于存储合并后的json数据merged_data = {}# 遍历所有的json文件,将数据合并到merged_data中for file in os.listdir("./json文件/", ):with open("./json文件/" + file, 'r', encoding="utf-8") as f:data = json.load(f)merged_data.update(data)print(file)# 将合并后的json数据写入到merged_file中with open("合并json/mergr.json", 'w', encoding="utf-8") as f:json.dump(merged_data, f, ensure_ascii=False)  # 防止中文乱码print("合并成功!")merge_json()def main():t1 = time.time()with open("合并json/mergr.json", "r", encoding="utf-8") as f:res = json.load(f)t2 = time.time()print(t2 - t1)for f_n in os.listdir("./数据源/"):with open("./结果/" + f_n, "w", newline='', encoding="utf-8") as f1:f1 = csv.writer(f1)f1.writerow(['姓名','地址','电话','电子邮件','出生日期','公司','职位','信用卡号码','IBAN','IP地址','证件号'])with open("./数据源/" + f_n, newline='', encoding='utf-8') as csvfile:# 读取 CSV 文件内容reader = csv.reader(csvfile, delimiter=',', quotechar='"')# 遍历 CSV 文件中的每一行数据print(f_n, "加载完毕")count = 0for d in reader:count+=1if count == 1:continueid_ = res.get(d[0], '-')if id_ != '-':id_ = id_[0]d[-1] = id_f1.writerow(d)main()

这个就是今天分享的小工具,希望对整天面对账单、报表的财务们有所帮助!!

致力于办公自动化的小小程序员一枚#

都看到这了,关注+点赞+收藏=不迷路!!

如果你想知道更多关于Python办公自动化的知识各位大佬给个关注吧!

http://www.yayakq.cn/news/881277/

相关文章:

  • 个人公众号做网站个人网站欣赏
  • 两学一做网站视频做网站应该注意些什么
  • 移动电子商务网站建设研究创意灵感
  • 重庆欧勒精细有限公司网站策划书sns社区网站开发
  • 泉州网页网站制作wordpress上传.sh脚本
  • wordpress+资源站模板教育网站制作视频
  • 高校网站建设花费淘宝做网站很便宜
  • 推特登陆 网站建设西宁网站公司
  • 域名注册完成后怎么做网站线上代运营公司
  • 官网的建站过程邯郸网站建设外包
  • 十个源码网站深圳cms建站模板
  • 江苏省高校品牌专业建设网站深圳网站建设及推广服务公司
  • 阿里云的网站建设好不好wordpress删除外链
  • 怎么自己创建网站或者app北京百度seo点击器
  • asp双语企业网站源码常见的网站布局结构
  • 响应式网站 软件百度seo快速排名优化
  • 网站制作好了怎么上传网页制作基础教程步骤
  • 长沙网站制作作西安建设工程交易中心官网
  • 乔拓云建站平台不是免费的长沙专业做网站
  • 最牛论坛网站wordpress 页面nofollow
  • 电子商务网站的开发流程包括高端网站建设苏州
  • 020网站建设和维护费用WordPress怎么添加音乐
  • 4大门户网站物流网站建设流程图
  • 青岛做网站方案莱芜市在线论坛话题
  • 信息网站开发国外门户网站设计
  • 行业网站建设内容开封网站建设培训
  • 网站开发PHP留言本电子版实验作品新加坡网络公司排名
  • 网站设计制作平台哪个好百度关键词优化平台
  • 无锡手机网站建设介绍常见的网络营销方式
  • 网站平台搭建国内做贵金属返佣比较多的网站