我是靠谱客的博主 欢呼电源,最近开发中收集的这篇文章主要介绍Python:字符串相似度计算及应运,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

(首先吐槽一番,发泄一下)最近初入一家数据服务公司做Intern Analyst,听名字是不是感觉很牛,然而作为实习生的小编我只能负责摘摘数据,更新一下KPI,让小编我甚是郁闷。然而,在工作中也遇到了一个小难题,问题虽小,也得有人解决不是!

问题:作为数据分析师,很多人是不懂编程的,但工作中又常常需要对比数据。比如,leader第一次交给我的任务就是,对比Excel中顾客两次购买产品收货地址是否有变化,基于广大人民的个性化创造力,明明同一个地址硬是写出了十几种格式。于是,苦逼如我只能用肉眼一一对比近乎500条记录,那个酸爽的感觉简直回味无穷。然而,接二连三的接到同类的任务,那日子还能过吗?

于是开始了自我拯救之路:

1.导入difflib模块,感受相似度计算

#import difflib
#query_str = "公安局"
#str2 = "上海市公安局"
#str3 = "上海市邮政局"
#print(difflib.SequenceMatcher(None, query_str, str2).quick_ratio())
#print(difflib.SequenceMatcher(None, query_str, str3).quick_ratio())

2.导入openpyxl,操作excel数据

3.洋洋洒洒十几行代码,妥妥地鄙视了一番不懂编程的leader(哈哈,稍有不敬!)

#导入模块,打开文件
import openpyxl
import difflib
excel = openpyxl.load_workbook(r'C:UsersfliuDesktop字符串相似度对比.xlsx')
#获取sheet
table = excel['Sheet1']
#按行遍历单元格
for Romnum in range(2 , 200):
str1 = str(table.cell(row = Romnum , column = 1).value)
str2 = str(table.cell(row = Romnum , column = 2).value)
num = difflib.SequenceMatcher(None, str1, str2).quick_ratio()
print(str1)
print(str2)
print(num)
if num >= 0.3:
table.cell(row = Romnum , column = 4).value = '没有改变'
else:
table.cell(row = Romnum , column = 4).value = '已经改变'
#保存结果
excel.save('字符串相似度对比.xlsx')

总结:人生苦短,及时行乐,若想偷懒,就学Python.

最后

以上就是欢呼电源为你收集整理的Python:字符串相似度计算及应运的全部内容,希望文章能够帮你解决Python:字符串相似度计算及应运所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(46)

评论列表共有 0 条评论

立即
投稿
返回
顶部