Pandas小技巧,給Excel添加一列,處理成績數字的等級
給大家分享一個Pandas處理Excel的非常小的技巧知識點。
怎樣給一個Excel添加一列,這一列是根據其它列的數字計算出來的。
(相關資料圖)
問題定義問題是這樣的一個輸入的excel文件:
學號姓名性別成績101王小麗女69102王寶勤男85103楊玉萍女49104田東會女90105陳雪蛟女73106楊建豐男42107黎梅佳女79108張興男91109馬進春女48110魏改娟女100111王冰研男64
其中成績是一列數字,那么怎樣給成績劃分等級?如下是劃分等級的計算規(guī)則:
60分以下為E級60~69分為D級70~79分為C級80~89分為B級90分以上為A級
如下進行處理,簡單起見,我挨個進行解釋:
1. 導入pandas模塊,讀取excel文件importpandasaspddf=pd.read_excel("成績表.xlsx",sheet_name=0)
第一句導入了pandas模塊,這是python的數據處理和統(tǒng)計分析的重要模塊。
pd.read_excel可以讀取excel的文件,sheet_name=0意思是讀取第一個sheet表格的數據。
這個df非常重要,表達的就是一個表格數據。
2. 編寫自己的根據成績劃分等級的函數defgrade_to_level(grade):"""grade是成績把這個Excel中的成績,劃分為A- E這五個分數區(qū)間。60分以下為E級、60~69分為D級、 70~79分為C級、80~89分為B級、90分以上為A級。"""ifgrade>=90:return"A"elifgrade>=80:return"B"elifgrade>=70:return"C"elifgrade>=60:return"D"else:return"E"
這個函數有個特點,輸入的參數是grade,其實就是一個數字,而這個數字,是excel表格的“數字”這一列的每個值。
而這個函數的返回,就是這個數字劃分后的等級,是5個字符串,A~E
注意,這個函數的輸入是單個數字,輸出是單個字符串。這個字符串將成為excel新列的每個值。
3. 給pandas的數據表df添加一個新列df["等級"]=df["成績"].apply(grade_to_level)
其中df["成績"]意思是訪問了當前excel的“成績”這一列,這是一列數據,里面有很多數字。
df["成績"].apply是在這個成績列上調用的函數,而這個函數很神奇,會調用我們第2步驟自己寫的 grade_to_level 函數。
這行代碼執(zhí)行的邏輯,是取出成績列的每個成績數字,傳給grade_to_level函數的每個grade參數,得到結果是等級字符串。
而這些等級字符串串聯(lián)在一起,形成了一個新的列。
這個新列和成績列的行數一模一樣相等,同時每個等級和每個成績是一一對應的關系。
而等式左側的df["等級"]則接收了這個結果的列。
最終這行代碼實現(xiàn)了,成績列被grade_to_level一一轉換成了等級列。
4. 輸出成結果excel文件df.to_excel("成績表分類后.xlsx",index=False)
這一列,將新的處理后的df,輸出成一個excel文件,名字是 成績表分類后.xlsx
如果不加index=False這個參數,那么輸出的結果表格中,會多一列,里面是從0開始到1到一直遞增的數字,無意義。所以一般都加上這個參數。
5. 最后的效果輸入文件截圖:
輸出文件結果:
6. 數據和代碼地址代碼地址,自己粘貼到瀏覽器訪問:
https://gitee.com/antpython/ant-codes-publish/tree/master/01pandas/01pandas%E7%BB%99%E6%88%90%E7%BB%A9%E5%88%86%E7%BA%A7%E5%88%AB
相關閱讀
-
Pandas小技巧,給Excel添加一列,處理成...
給大家分享一個Pandas處理Excel的非常小的技巧知識點。怎樣給一個Ex... -
全球實時:2022年終總結:不再用“拼命...
作者|磊哥來源|Java中文社群(ID:javacn666)轉載請聯(lián)系授權(微信... -
Python 五分鐘繪制漂亮的系統(tǒng)架構圖:全...
Diagrams是一個基于Python繪制云系統(tǒng)架構的模塊,它能夠通過非常簡... -
使用Python批量篩選上千個Excel文件中的...
點擊上方“Python爬蟲與數據挖掘”,進行關注回復“書籍”即可獲贈P... -
面試時,最可怕的就是背調?_世界最資訊
按理說,如實的寫自己過去的經歷,沒啥可怕的,但許多打工人對背調... -
國內互卷的電商巨頭們,又要在海外交手...
最近刮起一陣電商出海潮,各大電商巨頭們在海外動作頻頻。阿里重新...