您的位置:首页>时尚 >

世界快看:盘点一个Python自动化办公案例分享

2023-06-23 13:51:21    来源:程序员客栈
点击上方“Python爬虫与数据挖掘”,进行关注

回复“书籍”即可获赠Python从入门到进阶共10本电子书


【资料图】

低眉信手续续弹,说尽心中无限事。

大家好,我是皮皮。

一、前言

前几天在Python最强王者群【莫生气】问了一个Python自动化办公的问题,这里拿出来给大家分享下。

他的原始数据中,如下图所示,这里脱敏后的处理:

原来粉丝的做法是,针对不同的合同号,属于不同的产品,他自己单独从excel中进行筛选数据,比方说合同1为一个单独的表格,合同2又为一个单独的表格,合同3为一个单独的表格,然后再针对3个不同的表格进行单独操作。

上面这个做法确实是可以行得通,但是筛选的话就比较费时间,也费精力,万一出错了,比方说少复制一行啥的,还容易出现混乱。

二、实现过程

其实这里可以在处理的时候,增加一个判断,如果是合同1的话,就单独为合同1写个处理函数,同理,如果是合同2的话,就单独为合同2写个处理函数,以此类推。毕竟每个合同代表不同的产品,每个产品的模板处理还有部分差异。

然后公共部分的话,还是可以复用的,以前3个程序需要分别进步跑程序,现在整合到一个代码文件里边,提升了效率。

if __name__ == "__main__":    df = pd.read_excel("测试数据.xlsx", sheet_name="Sheet1", usecols="B,E,F,M,Q,R,U,V,X,AC,AN:AR")    df.columns = [c.strip() for c in df.columns]    for (b, e, m, f), df_split in df.groupby(["合同号", "商品编号", "收货单位", "城市名"]):        m = m.strip("*")        # 注意这里会过滤掉特殊省位        if any(addr in f for addr in ("广东", "安徽", "浙江", "福建", "贵州")):            continue        if b.startswith("合同1"):            title = "合同1"            hetong1(title, e)        elif b.startswith("合同2"):            title = "合同2"            hetong2(title, e)        elif b.startswith("合同3"):            title = "合同3"            hetong3(title, e)        else:            print(f"该订单{b}属于其他产品!")

程序改进之后,顺利地帮粉丝解决了问题,还提升了处理问题的效率,粉丝直呼好家伙!

三、总结

大家好,我是皮皮。这篇文章主要盘点了一个Python自动化办公的问题,文中针对该问题,给出了具体的解析和代码实现,帮助粉丝顺利解决了问题。

最后感谢粉丝【莫生气】提问,感谢【Python进阶者】给出的思路和代码解析,感谢【冯诚】等人参与学习交流。

【提问补充】温馨提示,大家在群里提问的时候。可以注意下面几点:如果涉及到大文件数据,可以数据脱敏后,发点demo数据来(小文件的意思),然后贴点代码(可以复制的那种),记得发报错截图(截全)。代码不多的话,直接发代码文字即可,代码超过50行这样的话,发个.py文件就行。

大家在学习过程中如果有遇到问题,欢迎随时联系我解决(我的微信:pdcfighting1),应粉丝要求,我创建了一些高质量的Python付费学习交流群和付费接单群,欢迎大家加入我的Python学习交流群和接单群!

小伙伴们,快快用实践一下吧!如果在学习过程中,有遇到任何问题,欢迎加我好友,我拉你进Python学习交流群共同探讨学习。

------------------- End -------------------

往期精彩文章推荐:

if a and b and c and d:这种代码有优雅的写法吗?

Pycharm和Python到底啥关系?

都说chatGPT编程怎么怎么厉害,今天试了一下,有个静态网页,chatGPT居然没搞定?

站不住就准备加仓,这个pandas语句该咋写?

欢迎大家点赞,留言,转发,转载,感谢大家的相伴与支持

想加入Python学习群请在后台回复【入群】

万水千山总是情,点个【在看】行不行

/今日留言主题/

随便说一两句吧~~

关键词:

相关阅读