首页 > 数据库 > 数据库开发技术 > 盘点一个Python自动化办公实战案例(一)
回复“书籍”即可获赠Python从入门到进阶共10本电子书
大家好,我是皮皮。
前几天在Python最强王者交流群【钟爱一生】问了一个Python自动化办公的问题,一起来看看吧。问题描述:
各位好:目前我遇到这样一个问题(如图):如果入库包含一工厂、二工厂和三工厂半成品同时出库也包含一工厂、二工厂和三工厂半成品且物料代码一致的话,入库改成含IONP中的入库信息,由于新学python对这个不太熟悉,代码不知从那下手,所以没写代码。
当然了,因为他的需求最开始没有表述清楚,导致群里大佬们一顿狂猜,最后才将真正的需求确认。这里再次请求大家,务必要把自己的提问问题表达清楚,要不然没人知道你要表达什么,浪费彼此的时间。
遇到表达不清的,能稍微描述下,想要达成的结果吗?在excel上,或者画图也行。最好是把你想要的结果展示在excel中,另外,你展示的这个表格最好做个小的demo发上来,不要让大佬们再手动创建原始数据。实在不行,你就自己录制视频,或者发语音在群里提问都可以。
最后粉丝提供了一版数据,给了一份demo。
最开始大家用Excel进行操作,确实也能实现,但是其中的逻辑并不是很清晰,所以也是无从下手。
关于业务逻辑这块,提问者自己没说清楚,大佬们也被折磨的非常痛苦,盲猜中。
最后被【东哥】确认为如下:第一步:针对Excel表格,以【物料代码】进行分组 第二步:筛选【入库】列包含一工厂半成品或者二工厂半成品或者三工厂半成品,且每行对应的【出库】包含一工厂半成品或者二工厂半成品或者三工厂半成品的数据行 第三步:将第二步中的筛选行中的【入库】内容,替换为第一步每个分组的第一行(含IONP)中的【入库】的内容 这么表述应该无误了。
虽然粉丝反馈说是对的,转眼间又被打脸否认,事实上,还是有误的,继续抓狂中。。。
然后粉丝继续给予了肯定,说这么理解无误。
目标:把二工厂半成品替换成一工厂,三工厂半成品替换成三工厂生产。
本来以为以上的猜测已经足够明确了,可是还是存在歧义之处。
需求明确了,接下来就是代码攻克了,下一篇文章我们一起来看看具体实现。这里【小小明】大佬给了一份代码,如下图所示:
有没有理解错误不清楚,只能保证当前数据情况下,结果正确。
关于后面的那几行代码解释如下:
这段代码主要做了以下几件事情:首先,t2.reset_index()将t2这个DataFrame的索引重置为默认的整数索引。然后,merge(t1, left_on="入库", right_on="出库", suffixes=("", "_y"))将t1和t2两个DataFrame根据"入库"和"出库"两列进行合并,合并方式是左连接(left join)。在合并过程中,如果两个DataFrame中有相同的列名,那么在结果中,这两个列的值会被分别命名为原列名和后缀"_y"。最后,for row in t.itertuples():遍历合并后的DataFrame t的每一行,然后使用df.loc[row.index, "入库"] = row.入库_y将每一行的"入库_y"值赋给df中对应行的"入库"列。
但是这个问题还没有结束,反而还在持续发酵中,下一篇文章,我们继续来看!
大家好,我是皮皮。这篇文章主要盘点了一个Python自动化办公的问题,文中针对该问题,给出了具体的解析和代码实现,帮助粉丝顺利解决了问题。
最后感谢粉丝【钟爱一生】提出的问题,感谢【瑜亮老师】、【隔壁😼山楂】、【小小明】、【黑科技·鼓包】、【猫药师Kelly】、【东哥】给出的思路,感谢【莫生气】、【冯诚】等人参与学习交流。
【提问补充】温馨提示,大家在群里提问的时候。可以注意下面几点:如果涉及到大文件数据,可以数据脱敏后,发点demo数据来(小文件的意思),然后贴点代码(可以复制的那种),记得发报错截图(截全)。代码不多的话,直接发代码文字即可,代码超过50行这样的话,发个.py文件就行。
大家在学习过程中如果有遇到问题,欢迎随时联系我解决(我的微信:pdcfighting1),应粉丝要求,我创建了一些ChatGPT机器人交流群和高质量的Python付费学习交流群和付费接单群,欢迎大家加入我的Python学习交流群和接单群!
小伙伴们,快快用实践一下吧!如果在学习过程中,有遇到任何问题,欢迎加我好友,我拉你进Python学习交流群共同探讨学习。

------------------- End -------------------
往期精彩文章推荐:

欢迎大家点赞,留言,转发,转载,感谢大家的相伴与支持
想加入Python学习群请在后台回复【入群】
万水千山总是情,点个【在看】行不行
/今日留言主题/
随便说一两句吧~~
原文作者:Python爬虫与数据挖掘;如有侵权,请联系管理员删除。