人工智能

文科生自学Python/VBA-多条件判断评级

时间:2010-12-5 17:23:32  作者:IT科技类资讯   来源:系统运维  查看:  评论:0
内容摘要:Python语言简洁生动,特别适合文科生学习入门IT世界,用几十行代码就能够做一个完整的爬虫脚本,开发效率杠杠的!短时间内即可解决工作和学习中碰到的各种棘手问题。(本人外语专业毕业,机缘巧合爱上编程,

Python语言简洁生动,文科特别适合文科生学习入门IT世界,生自用几十行代码就能够做一个完整的多条断评爬虫脚本,开发效率杠杠的判级!短时间内即可解决工作和学习中碰到的各种棘手问题。(本人外语专业毕业,文科机缘巧合爱上编程,生自自学道路曲曲折折,多条断评痛并快乐!)在这里总结一下自学Python遇到的判级难点和重点,分享码过的文科代码和要点总结,希望能够给初学者一点启示和鼓励,亿华云生自同时愿意结交更多大神交流有助提升自己的多条断评水平。

之前的判级文章分享了如何根据成绩划分等级,只涉及到了一个条件因素,文科今天在这里给小伙伴们分享一下多条件判断如何处理,生自下面通过一个有趣的多条断评案例进行阐述和讲解:

截图如下:

以上是一个员工考核数据,需要通过”性别“和”绩效考核成绩“两个字段来综合判断是否获得全额年终奖,半额年终奖或无年终奖,具体标准如下:

男性方面:

大于等于90时拿全额年终奖,大于等于70时拿半额年终奖,亿华云计算剩余情况则为无年终奖

女性方面:

大于等于85时拿全额年终奖,大于等于60时拿半额年终奖,剩余情况则为无年终奖

如何用Python根据以上标准生成正确的字段数据呢?接下来展示一下具体过程,其实也是涉及了上次提到的知识点,只是略有不同:

切到指定路径读取和检查数据情况:

编写带两个参数的自定义函数并用apply生成相应字段:

具体结果如下截图:

Python代码如下:

import pandas as pd import os def Set_Work_Path(x):     try:         os.chdir(x)         route = os.getcwd()         return route     except Exception:         print("No Result") work_path = r"E:\DATA\02AUG21" Set_Work_Path(work_path) data = pd.read_excel("Sample.xlsm",sheet_name="DATA-Python",header=0,index_col=None) print(data) def Get_Rate(df,x,y):     if df[x] == "男" and df[y] >= 90:         return "全额年终奖"     elif df[x] == "男" and df[y] >= 70:         return "半额年终奖"     elif df[x] == "男" and df[y] < 70:         return "无年终奖"     elif df[x] == "女" and df[y] >= 85:         return "全额年终奖"     elif df[x] == "女" and df[y] >= 60:         return "半额年终奖"     else:         return "无年终奖" data["评级"] = data.apply(Get_Rate,axis=1,args=("性别","绩效考核成绩")) print(data) 

实际上有更多维度的情况可以举一反三,即增加参数数量并套用相同方法,下面也讲一下如何通过VBA在EXCEL世界里直接解决相关问题:

编写自定义函数并套用直接生成相应字段:

VBA代码如下:

Function JudgeRate(x, y) Application.ScreenUpdating = False If x = "男" And y >= 90 Then     JudgeRate = "全额年终奖" ElseIf x = "男" And y >= 70 Then     JudgeRate = "半额年终奖" ElseIf x = "男" And y < 70 Then     JudgeRate = "无年终奖" ElseIf x = "女" And y >= 85 Then     JudgeRate = "全额年终奖" ElseIf x = "女" And y >= 60 Then     JudgeRate = "半额年终奖" Else:     JudgeRate = "无年终奖" End If Application.ScreenUpdating = True End Function
copyright © 2025 powered by 益强资讯全景  滇ICP备2023006006号-31sitemap