尤物视频网站_国产精品成人在亚洲_国产成人亚洲综合无码不卡精品_丁香五月香婷婷五月_亚洲成AV人片高潮喷水

您的位置:首頁 >聚焦 >

Pandas小技巧,給Excel添加一列,處理成績(jī)數(shù)字的等級(jí)

2023-01-06 20:53:05    來源:程序員客棧

給大家分享一個(gè)Pandas處理Excel的非常小的技巧知識(shí)點(diǎn)。

怎樣給一個(gè)Excel添加一列,這一列是根據(jù)其它列的數(shù)字計(jì)算出來的。


(相關(guān)資料圖)

問題定義

問題是這樣的一個(gè)輸入的excel文件:

學(xué)號(hào)姓名性別成績(jī)101王小麗女69102王寶勤男85103楊玉萍女49104田東會(huì)女90105陳雪蛟女73106楊建豐男42107黎梅佳女79108張興男91109馬進(jìn)春女48110魏改娟女100111王冰研男64

其中成績(jī)是一列數(shù)字,那么怎樣給成績(jī)劃分等級(jí)?如下是劃分等級(jí)的計(jì)算規(guī)則:

60分以下為E級(jí)60~69分為D級(jí)70~79分為C級(jí)80~89分為B級(jí)90分以上為A級(jí)

如下進(jìn)行處理,簡(jiǎn)單起見,我挨個(gè)進(jìn)行解釋:

1. 導(dǎo)入pandas模塊,讀取excel文件

importpandasaspddf=pd.read_excel("成績(jī)表.xlsx",sheet_name=0)

第一句導(dǎo)入了pandas模塊,這是python的數(shù)據(jù)處理和統(tǒng)計(jì)分析的重要模塊。

pd.read_excel可以讀取excel的文件,sheet_name=0意思是讀取第一個(gè)sheet表格的數(shù)據(jù)。

這個(gè)df非常重要,表達(dá)的就是一個(gè)表格數(shù)據(jù)。

2. 編寫自己的根據(jù)成績(jī)劃分等級(jí)的函數(shù)

defgrade_to_level(grade):"""grade是成績(jī)把這個(gè)Excel中的成績(jī),劃分為A- E這五個(gè)分?jǐn)?shù)區(qū)間。60分以下為E級(jí)、60~69分為D級(jí)、 70~79分為C級(jí)、80~89分為B級(jí)、90分以上為A級(jí)。"""ifgrade>=90:return"A"elifgrade>=80:return"B"elifgrade>=70:return"C"elifgrade>=60:return"D"else:return"E"

這個(gè)函數(shù)有個(gè)特點(diǎn),輸入的參數(shù)是grade,其實(shí)就是一個(gè)數(shù)字,而這個(gè)數(shù)字,是excel表格的“數(shù)字”這一列的每個(gè)值。

而這個(gè)函數(shù)的返回,就是這個(gè)數(shù)字劃分后的等級(jí),是5個(gè)字符串,A~E

注意,這個(gè)函數(shù)的輸入是單個(gè)數(shù)字,輸出是單個(gè)字符串。這個(gè)字符串將成為excel新列的每個(gè)值。

3. 給pandas的數(shù)據(jù)表df添加一個(gè)新列

df["等級(jí)"]=df["成績(jī)"].apply(grade_to_level)

其中df["成績(jī)"]意思是訪問了當(dāng)前excel的“成績(jī)”這一列,這是一列數(shù)據(jù),里面有很多數(shù)字。

df["成績(jī)"].apply是在這個(gè)成績(jī)列上調(diào)用的函數(shù),而這個(gè)函數(shù)很神奇,會(huì)調(diào)用我們第2步驟自己寫的 grade_to_level 函數(shù)。

這行代碼執(zhí)行的邏輯,是取出成績(jī)列的每個(gè)成績(jī)數(shù)字,傳給grade_to_level函數(shù)的每個(gè)grade參數(shù),得到結(jié)果是等級(jí)字符串。

而這些等級(jí)字符串串聯(lián)在一起,形成了一個(gè)新的列。

這個(gè)新列和成績(jī)列的行數(shù)一模一樣相等,同時(shí)每個(gè)等級(jí)和每個(gè)成績(jī)是一一對(duì)應(yīng)的關(guān)系。

而等式左側(cè)的df["等級(jí)"]則接收了這個(gè)結(jié)果的列。

最終這行代碼實(shí)現(xiàn)了,成績(jī)列被grade_to_level一一轉(zhuǎn)換成了等級(jí)列。

4. 輸出成結(jié)果excel文件

df.to_excel("成績(jī)表分類后.xlsx",index=False)

這一列,將新的處理后的df,輸出成一個(gè)excel文件,名字是 成績(jī)表分類后.xlsx

如果不加index=False這個(gè)參數(shù),那么輸出的結(jié)果表格中,會(huì)多一列,里面是從0開始到1到一直遞增的數(shù)字,無意義。所以一般都加上這個(gè)參數(shù)。

5. 最后的效果

輸入文件截圖:

輸出文件結(jié)果:

6. 數(shù)據(jù)和代碼地址

代碼地址,自己粘貼到瀏覽器訪問:

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

關(guān)鍵詞: 就是一個(gè) 非常重要 就是這個(gè)

相關(guān)閱讀