加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
匹配三公司相似客商.py 9.24 KB
一键复制 编辑 原始数据 按行查看 历史
fengmingshan 提交于 2022-01-08 11:41 . 更新相似项目辅助名称
# -*- coding: utf-8 -*-
"""
Created on Sun Apr 4 21:24:41 2021
@author: qjwx
"""
import pandas as pd
import os
import Levenshtein
path = r'C:\Users\Administrator\Desktop\内部往来'
os.chdir(path)
name_dict = {
'省水利水电公司本部':'云南省水利水电工程有限公司',
'三公司机关':'云南省水利水电工程有限公司第三公司',
'一公司机关':'云南省水利水电工程有限公司第一分公司',
'大理分公司机关':'云南省水利水电工程有限公司大理分公司',
'贵州分公司机关':'云南省水利水电工程有限公司贵州分公司',
'路桥分公司机关':'云南省水利水电工程有限公司路桥分公司',
'服务分公司机关':'云南省水利水电工程有限公司服务分公司',
}
same_guest = {
'易门县铜厂乡2021年以工代赈示范项目(里芬村进村道路路面硬化工程)':'省水利水电公司直属项目部-易门县铜厂乡2021年以工代赈示范项目(里芬村进村道路路面硬化工程)',
'弥勒迎春(小黑洞、中哨、者圭等18座小型水库)':'中哨小黑洞项目',
'普洱市西盟县农村供水保障专项行动项目投建联合(PC)招标':'云南省水利水电工程有限公司-普洱市西盟县农村供水保障专项行动员目投建联合(PC)招标',
'陆良县永清河水库除险加固工程C1标:大坝防渗及坝面整修工程':'云南省水利水电工程有限公司-陆良县永清河水库除险加固工程C1标:大坝防渗及坝面整修工程',
'宣威市2021年第一批巩固拓展脱贫攻坚成果项目抗旱应急工程':'云南省水利水电工程有限公司-宣威市2021年第一批巩固拓展脱贫攻坚成果项目抗旱应急工程',
'临翔区南汀河水生态文明建设项目(一期)设计采购施工总承包(EPC)':'云南省水利水电工程有限公司-临翔区南汀河水生态文明建设项目(一期)设计采购施工总承包(EPC)',
'宣威通南铺水库':'宣威通南铺水库项目',
'施甸岚峰水库灌浆及隧洞工程':'施甸岚峰水库灌浆及隧洞',
'云南省临沧市临翔区弯子水库枢纽工程':'云南省临沧市临翔区弯子水库水库枢纽工程',
'文山州德厚水库灌浆平顶洞':'文山州德厚水库灌浆平洞工程',
'易门县团结水库':'易门团结水库项目部',
'易门县苗茂水库进库道路硬化及溢洪道、输水隧洞启闭机控制用电项目':'省水利水电公司直属项目部易门县苗茂水库进库道路硬化及溢洪道、输水隧洞启闭机控制用电项目',
'临翔区大营铺水库工程':'省水利水电公司直属项目部-临翔区大营铺水库工程',
'易门县大谷厂水库除险加固工程-三标段(施工招标)':'云南省水利水电工程有限公司-易门县大谷厂水库除险加固工程—三标段(施工招标)',
'富源县迤启水库':'省水利水电公司直属项目部-富源县迤启水库',
'云南省曲靖市陆良县河道综合整治工程PPP项目':'省水利水电公司直属项目部-云南省曲靖市陆良县河道综合整治工程PPP项目',
'临翔区第四净水处理厂及配套管网工程设计施工总承包':'云南省水利水电工程有限公司第三公司#省水利水电公司直属项目部-临翔区第四净水处理厂及配套管网工程设计施工总承包',
'通海县琉璃河水库扩建工程施工':'省水利水电公司直属项目部-通海县琉璃河水库扩建工程施工',
'临翔区昔归小镇引水入湾工程设计施工总承包':'云南省水利水电工程有限公司-临翔区昔归小镇引水入湾工程设计施工总承包',
'蒙自市蚂蚱冲水库工程第一标段(枢纽工程)':'蒙自市蚂蚱冲水库工程项目经理部',
'屏边县红旗水库除险加固工程':'省水利水电公司直属项目部-屏边县红旗水库除险加固工程',
'新平县洋发城水库扩建工程一标枢纽主体工程施工':'省水利水电公司直属项目部-新平县洋发城水库扩建工程一标枢纽主体工程施工',
'宣威市偏桥水库除险加固工程':'云南省水利水电工程有限公司-宣威市偏桥水库除险加固工程',
'云南省玉溪市易门县岔河水库连通工程PPP项目':'省水利水电公司直属项目部云南省玉溪市易门县岔河水库连通工程PPP项目',
'屏边县城观音河文化桥段综合治理工程':'省水利水电公司直属项目部-屏边县城观音河文化桥段综合治理工程',
'富源县阿汪水库工程第五标段:输水兼导流隧洞工程':'省水利水电公司直属项目部富源县阿汪水库工程第五标段:输水兼导流隧洞工程',
'临翔区大桥坡水库工程施工总承包':'省水利水电公司直属项目部-临翔区大桥坡水库工程施工总承包',
'宣威市新屯水库至庙山水厂抗旱应急调水工程':'云南省水利水电工程有限公司宣威市新屯水库至庙山水厂抗旱应急调水工程',
'屏边县城区抗旱应急供水工程':'省水利水电公司直属项目部-屏边县城区抗旱应急供水工程',
'临翔区曼豪箐水库工程':'省水利水电公司直属项目部-临翔区曼豪箐水库工程',
'曲靖市麒麟区大黑箐水库帷幕灌浆工程':'省水利水电公司直属项目部-曲靖市麒麟区大黑箐水库帷幕灌浆工程',
'曲靖市麒麟区大黑箐水库勘探检测工程':'省水利水电公司直属项目部-曲靖市麒麟区大黑箐水库勘探检测工程',
'芒市等嘎':'芒市等噶项目部',
'屏边滴水苗城(苗族)特色小镇牧羊河生态修复综合整治(宝镜湖坝体、碧玉湖坝体、清溪湖坝体、双龙湖坝体、月牙湖坝体)建设项目设计-采购-施工总承包(EPC新)':'牧羊河水生态治理项目',
'屏边县新华水库工程':'云南省水利水电工程有限公司-屏边县新华水库工程',
'会泽县白马箐水库第一标段:拦河坝、溢洪道工程':'会泽县白马箐水库第一标段:拦河坝、溢洪道工程',
'云南省水利水电工程有限公司-易门县大谷厂水库除险加固工程—三标段(施工招标)':'云南省水利水电工程有限公司-易门县大谷厂水库除险加固工程-三标段(施工招标)',
'云南省水利水电工程有限公司宣威市新屯水库至庙山水厂抗旱应急调水工程':'云南省水利水电工程有限公司-宣威市新屯水库至庙山水厂抗旱应急调水工程',
'云南省水利水电工程有限公司-易门县大谷厂水库除险加固工程—三标段(施工招标)':'云南省水利水电工程有限公司-易门县大谷厂水库除险加固工程-三标段(施工招标)',
'施甸县五座水库PPP项目栗树水库':'省水利水电公司直属项目部施甸县栗树水库工程',
'云南省水利水电工程有限公司-临翔区南汀河水生态文明建设项目(一期)设计采购施工总承包(EPC)':'云南省水利水电工程有限公司-临翔区南汀河生态文明建设项目(一期)设计采购施工总承包(EPC)',
}
df = pd.read_excel('项目清单.xls')
for key, value in name_dict.items():
df['项目'] = df['项目'].map(lambda x:x.replace(key, value))
projects = set(df['项目'])
# 打开原始数据
df_source =pd.read_excel('内部往来最终.xls',names=['A', 'B', 'C', 'D', 'E'])
df_source = df_source[~(df_source['B'].isnull())]
df_source = df_source[~(df_source['A']=='主体帐簿累计')]
start = []
end = []
subject = []
for ind,item in zip(df_source.index,df_source['A']):
if '对象:' == item:
start.append(ind)
subject.append(df_source.loc[ind,'B'].split('\\')[-1].replace('】',''))
elif '核算单位:' == item:
end.append(ind)
df_tmp_list = []
for i,j,k in zip(start, end, subject):
df_tmp = pd.DataFrame(columns = ['科目', '项目辅助核算名称', '客商辅助核算名称', '方向', '金额'])
df_tmp['项目辅助核算名称'] = list(df_source.loc[i+3:j-1,'B'])
df_tmp['客商辅助核算名称'] = list(df_source.loc[i+3:j-1,'C'])
df_tmp['方向'] = list(df_source.loc[i+3:j-1,'D'])
df_tmp['金额'] = list(df_source.loc[i+3:j-1,'E'])
df_tmp['科目'] = k
df_tmp_list.append(df_tmp)
df_res = pd.concat(df_tmp_list, axis = 0)
for key, value in name_dict.items():
df_res['项目辅助核算名称'] = df_res['项目辅助核算名称'].map(lambda x:x.replace(key, value))
df_res['客商辅助核算名称'] = df_res['客商辅助核算名称'].map(lambda x:x.replace(key, value))
for key, value in same_guest.items():
df_res['项目辅助核算名称'] = df_res['项目辅助核算名称'].map(lambda x:x.replace(key, value))
guests = set(df_res['客商辅助核算名称'])
diff= projects - guests
res = []
for item in diff:
same = [Levenshtein.jaro(item,x) for x in guests]
tmp_dict = {k:v for k,v in zip(guests,same)}
sorted_tuple = sorted(tmp_dict.items(),key = lambda x:x[1],reverse = True)
res.append((item,sorted_tuple[0][0]))
res_dict = {k:v for k,v in res}
for k,v in res_dict.items():
print(k +'\t'+ v)
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化