网友总结的web前端知识体系 【经验借鉴】用Python辅助办公 记一下学习类的网站
你的位置:主页 > 他山之石 > 【经验借鉴】用Python辅助办公

 

【经验借鉴】用Python辅助办公

发布: 2019-08-13 23:49 | 作者:千漉尽沙(整理) | 查看: | 字体: [ ]

 (本文根据知乎陈廷聿分享文章整理https://www.zhihu.com/question/313671299/answer/613206743)

 

1.背景:

70MExcel文件要处理,存着近十年业务信息,里面数据格式还都是混乱的,如:

比如有个供货商全名叫:ABCD有限责任公司,那么这个Excel中会存有:AB公司、AB有限公司、CD有限责任公司、CD责任有限公司、ACBD有限公司、ABD公司等等名字

原处理方法用Excel vlookup 函数,当匹配不上的时候,就手工搜索……

2.弯路胜过原地踏步

第一步是从数据清洗开始的。

先把Excel导成csv,去掉了其中不必要的格式、样式、对象等。

然后统一一下各数据标准名称,怎么表述的都有,几十万的数据量,人工交叉比对的话显然是不现实的。(后来才知道了笛卡尔积这个词)

第一步先使用了Excel自身的去重功能,将所有的供货商名称进行了一个去重,剩下了大概5000个左右的名称。

Python有一个库,叫做fuzzywuzzy,用它来进行模糊匹配。

from fuzzywuzzy import fuzz

print( fuzz.ratio("内容1", "内容2")

会输出一个0——100的数字,数字越大代表这两个内容越相似。

所以就写了一个循环,把这5000多个项目里面,匹配度超过70%以上的数据组都筛了出来,再去Excel里面手工替换(没办法,那时候还不会操作Excel

然后整理了一下各个行列的位置,这样我就有了一个相对准确的数据源。

后来思考了一下,把数据存在Excel里面不是个长久之计啊,毕竟几十万数据呢,就想把数据导入到数据库里。导入Access,可是Python库没弄明白,硬是读不出来卡死了。

 后来想到,之前自己从网上下载的某某私服的一键端里,有个MySQL数据库的一键启动方式,试了试居然能用,就把那个MySQL程序整个拷出来、清干净,作为了我的数据库。

然后就是使用Navicat导入Excel,使用pymysql库进行读取

接下来,就是要进行数据分析了,由于当时没学会pandas,数据透视图的效果死活做不出来,不得已,只好新建N个列表,用一堆if...else... ,把同类数据存入同一个列表中,求和,求平均值之类的

分析出了结果,要写入excel了,但是由于没有研究明白怎么进行追加写入(xlutils库各种限定太多了……),只好使用xlwt把数据写到一个空Excel中,然后手工把一整片复制粘贴过去……反正也是解决了……能用了……

因为每天的仓库返回的数据还要向数据库里追加,就写了个录入程序,先用xlrd读取、然后fuzzywuzzy模糊匹配、最后pymysql写入。

 这时候,我的工作已由每天七八个小时,进化到了每天4小时左右

3.走上杂务工作的快车道

现在每天工作时间少一半,可以思考技术问题。

我学会了Excel的各种库,比如xlrdxlwtxlsxwriteropenpyxlxlwingswin32com,能根据自己的需要选择需要用的库;

还学会了同属Office系列的python-docxpython-pptx,开始尝试自动制作WordPPT

学会了自动发邮件的stmp库、zmail库;

学会了能操作微信发消息的itchat

学了爬虫、学了解压缩、学了调整图片大小、学了Wordpdf等等等等很多库或者功能。

现在,每天的工作,只需要十分钟,最快记录四分钟,就能完成。

 每天上班,第一件事,优雅的运行一个py文件,一堆import后面,只有 

 

4、后续的思考

可以把数据库移到了一台淘汰下来的办公电脑上作为公共联网数据库;

可以用pyqt写了一个带gui的数据输出软件,所有同事都可以自由输出数据进行分析了;

可以用pandasmatplotlib写了一个自动生成数据分析图片的软件,再做月报、周报什么的汇报材料,不用再通过Excel手工作图了;

可以用pandasmatplotlib配合pyqt写了一个入库分析软件,大家输入时间段和限定条件后一键进行数据分析了,不会有同事老找我要数据了;

可以用xlrdpython-docx写了一个合同生成器,旺季采购的同事不用焦头烂额的改合同了;

可以用numpy配合pyqt做了一个购销存平衡软件,可以让领导们在决策时通过拖动滑块就可以实时展现不同购、销情况下库存情况了;

可以用爬虫配合pymysql写了一个实时粮价获取数据库,告别了浏览网页逐行复制价格的方式;

可以做一个公司内部网站,把之前的所有C/S架构的软件都改成B/S

可以做一个数据驾驶舱,供决策使用。 

可以做一个访客人脸识别,方便在重要客户进大门以后提醒领导到门口迎接。

可以做一个更智能的爬虫,能在网上自动收集市场信息。

可以做一个更智能的进销存平衡软件,能使用最优化进行购销平衡计算。

可以做一套发票管理系统给财务、一套物料管理系统给物资、一套工资系统给HR……



芊眠书路

本站以学习为目的,内容以站长原创文章为主,其中学习或收藏信息引用的部分,如果侵犯了您的版权,请联系我Email,本站将立即删除。
芊眠书路|Email:pzcdcinfo@163.com |鄂ICP备19019760号-1