加入收藏 | 设为首页 | 会员中心 | 我要投稿 好传媒网 (https://www.haochuanmei.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 编程要点 > 语言 > 正文

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

发布时间:2021-11-05 14:39:14 所属栏目:语言 来源:互联网
导读:Python语言简洁生动,特别适合文科生学习入门IT世界,用几十行代码就能够做一个完整的爬虫脚本,开发效率杠杠的!短时间内即可解决工作和学习中碰到的各种棘手问题。(本人外语专业毕业,机缘巧合爱上编程,自学道路曲曲折折,痛并快乐!)在这里总结一下自学Pyth
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:DATA2AUG21"
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

(编辑:好传媒网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读