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

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

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

[[423498]]

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

截图如下:

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

男性方面:

  • 大于等于90时拿全额年终奖,大于等于70时拿半额年终奖,剩余情况则为无年终奖

女性方面:

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

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

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

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

具体结果如下截图:

Python代码如下:

 

  1. import pandas as pd 
  2. import os 
  3. def Set_Work_Path(x): 
  4.     try: 
  5.         os.chdir(x) 
  6.         route = os.getcwd() 
  7.         return route 
  8.     except Exception: 
  9.         print("No Result"
  10. work_path = r"E:\DATA\02AUG21" 
  11. Set_Work_Path(work_path) 
  12. data = pd.read_excel("Sample.xlsm",sheet_name="DATA-Python",header=0,index_col=None) 
  13. print(data) 
  14.  
  15. def Get_Rate(df,x,y): 
  16.     if df[x] == "男" and df[y] >= 90: 
  17.         return "全额年终奖" 
  18.     elif df[x] == "男" and df[y] >= 70: 
  19.         return "半额年终奖" 
  20.     elif df[x] == "男" and df[y] < 70: 
  21.         return "无年终奖" 
  22.     elif df[x] == "女" and df[y] >= 85: 
  23.         return "全额年终奖" 
  24.     elif df[x] == "女" and df[y] >= 60: 
  25.         return "半额年终奖" 
  26.     else
  27.         return "无年终奖" 
  28. data["评级"] = data.apply(Get_Rate,axis=1,args=("性别","绩效考核成绩")) 
  29. print(data) 

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

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

VBA代码如下:

 

  1. Function JudgeRate(x, y) 
  2. Application.ScreenUpdating = False 
  3. If x = "男" And y >= 90 Then 
  4.     JudgeRate = "全额年终奖" 
  5. ElseIf x = "男" And y >= 70 Then 
  6.     JudgeRate = "半额年终奖" 
  7. ElseIf x = "男" And y < 70 Then 
  8.     JudgeRate = "无年终奖" 
  9. ElseIf x = "女" And y >= 85 Then 
  10.     JudgeRate = "全额年终奖" 
  11. ElseIf x = "女" And y >= 60 Then 
  12.     JudgeRate = "半额年终奖" 
  13. Else
  14.     JudgeRate = "无年终奖" 
  15. End If 
  16. Application.ScreenUpdating = True 
  17. End Function

 

 

责任编辑:未丽燕 来源: 今日头条
相关推荐

2015-03-20 09:19:45

2019-04-03 10:24:28

词云图工具词云

2019-02-27 09:56:06

码农科技开发

2015-07-21 15:24:49

文科生成长过程

2020-08-14 08:01:53

人工智能数据科学技术

2018-01-26 14:24:15

华为云

2017-11-07 11:40:36

大数据数据分析文科生

2020-05-20 09:27:32

编程数学Python

2016-07-25 14:49:45

服务器

2014-04-23 11:22:34

开发技术周刊

2009-09-15 09:33:46

linq多条件查询

2009-09-15 11:34:47

Linq多条件查询

2009-06-29 09:03:31

Hibernate多条

2009-09-15 17:45:34

Linq多条件

2010-11-09 15:18:37

SQL Server多

2024-01-10 18:07:27

Rust语言多线程

2010-09-25 16:42:45

sql语句

2012-09-26 10:43:07

IT程序员编程

2010-05-06 14:11:55

Oracle多条件查询

2010-11-26 10:37:14

MySQL多个条件判断
点赞
收藏

51CTO技术栈公众号