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
原文地址:https://www.toutiao.com/a7007083881971106308/