谁说学了编程就一定要当程序员?自我介绍一下,我既不是程序员,大学学的也不是IT专业。我的工作内容主要就是制作汇报各种统计报表、数据图等。我身边的同事每天至少花3.5~4小时去做Excel,使用数据透视图、vlookup等各类函数去做出一份内含3000多个数据的日报。umm... 如果领导临时安排什么工作的话,那就要加班从浩如烟海的数据里找领导要的东西了。
首次接到任务的我
我们有一个巨大的,达70多M的Excel文件,每次公司配发的破电脑打开就需要小二十分钟,里面存着我们近十年的采购的每一车的详细信息,重点是里面的数据格式还都是混乱的。打个比方,比如我们有个供货商全名叫:ABCD有限责任公司,那么这个Excel中会存有
AB公司、AB有限公司、CD有限责任公司、CD责任有限公司、ACBD有限公司ABD公司等等类似的名字。当我第一次看到这份表格的时候,我的内心是崩溃的。

后来交接的同事告诉我,她用的Excel的 vlookup 函数,当匹配不上的时候,就手工搜索……
然后……我……

就这样,经历了噩梦般的几个月的我,看到了一个词“图灵完备”。一个图灵完备的语言理论上能解决任何算法。显然,Python是一种图灵完备的语言。
使用Python图灵完备的语言
我的第一步是从数据清洗开始,先把刚才说的那个70M的Excel导成csv,去掉了其中不必要的格式、样式、对象等。
然后我想统一一下各个数据的标准名称,刚才说了,由于经手的人太多,同一个数据,怎么表述的都有,几十万的数据量,人工交叉比对的话显然是不现实的。(后来才知道了笛卡尔积这个词)
我第一步先使用了Excel自身的去重功能,将所有的供货商名称进行了一个去重,剩下了大概5000个左右的名称。
然后,作为一个懒人,我肯定不会用人工去比对了。
Python有一个库,叫做fuzzywuzzy,用它来进行模糊匹配。
from fuzzywuzzy import fuzzprint( fuzz.ratio("内容1
本文分享了一位非IT专业工作者如何利用Python实现自动化办公,从处理大型混乱Excel文件到使用fuzzywuzzy进行数据匹配,大大提高了工作效率。
524

被折叠的 条评论
为什么被折叠?



