您好,登錄后才能下訂單哦!
本篇內(nèi)容介紹了“python如何利用pandas分析學(xué)生期末成績(jī)”的有關(guān)知識(shí),在實(shí)際案例的操作過程中,不少人都會(huì)遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!
Pandas是構(gòu)建在Python編程語言之上的一個(gè)快速、強(qiáng)大、靈活且易于使用的開源數(shù)據(jù)分析和操作工具。Pandas是基于Numpy的專業(yè)數(shù)據(jù)分析工具,可以靈活高效的處理各種數(shù)據(jù)集。
我們使用pip進(jìn)行安裝(如果沒有可自行查詢?nèi)绾伟惭bpip)安裝panda最簡(jiǎn)單的方法是將其作為Anaconda的一部分安裝,Anaconda主要用于數(shù)據(jù)分析和科學(xué)計(jì)算。還提供源代碼、PyPI、ActivePython、各種Linux發(fā)行版或開發(fā)版本進(jìn)行安裝的說明。
當(dāng)然,最為基礎(chǔ)的Python環(huán)境還是少不了的,如果你是Linux或使用的Mac就不用安裝Python了。
pip install pandas
1.從excel文件中讀出本班同學(xué)的成績(jī)冊(cè),并處理好缺失值。
2.根據(jù)‘加分'和‘減分'兩列統(tǒng)計(jì)出平時(shí)成績(jī)。
3.將實(shí)驗(yàn)報(bào)告成績(jī)從ABCD轉(zhuǎn)換為百分制,統(tǒng)計(jì)出實(shí)驗(yàn)成績(jī)。A為90分,B為75分,C為60分,D為40分。
4.隨機(jī)生成假設(shè)的期末成績(jī),取值區(qū)間為40-100分。將自己的期末成績(jī)改成你覺得可能考到的分?jǐn)?shù)。
5.按照平時(shí)成績(jī)20%,實(shí)驗(yàn)成績(jī)30%,期末成績(jī)50%的比例計(jì)算綜合成績(jī)。
6.輸出你自己的平時(shí)成績(jī),實(shí)驗(yàn)成績(jī),期末成績(jī)和綜合成績(jī)。
7.統(tǒng)計(jì)全班綜合成績(jī)[90,100],[80,89],[70,79],[60-69],[0,59]各段成績(jī)的人數(shù),并畫餅圖。
8.將完整的成績(jī)保存到score.xlsx文件中,打開excel檢查輸出是否正確。
準(zhǔn)備工作:導(dǎo)入需要用到的模塊
import pandas as pd import numpy as np import random from matplotlib import pyplot as plt
(1)從excel文件中讀出本班同學(xué)的成績(jī)冊(cè),并處理好缺失值。
df=pd.read_csv("4班平時(shí)成績(jī).csv",encoding="gbk") df=df.rename(columns={"ID":"學(xué)號(hào)"})#將列名ID重命名 df.set_index("姓名",inplace=True)#將姓名作為index df=df.fillna(method="backfill")#處理缺失值
(2)根據(jù)‘加分'和‘減分'兩列統(tǒng)計(jì)出平時(shí)成績(jī)。
df["平時(shí)成績(jī)"]=df["平時(shí)成績(jī)"]-df["減分"] df=df.drop("減分",axis=1)#刪除列
(3)將實(shí)驗(yàn)報(bào)告成績(jī)從ABCD轉(zhuǎn)換為百分制,統(tǒng)計(jì)出實(shí)驗(yàn)成績(jī)。A為90分,B為75分,C為60分,D為40分。
def m(x):#2 將ABCD轉(zhuǎn)化為對(duì)應(yīng)的分?jǐn)?shù) if x=="A": return 90 if x=="B": return 75 if x=="C": return 60 if x=="D": return 40 df["第一次實(shí)驗(yàn)報(bào)告"]=df.第一次實(shí)驗(yàn)報(bào)告.map(m) df["第二次實(shí)驗(yàn)報(bào)告"]=df.第二次實(shí)驗(yàn)報(bào)告.map(m) df["第三次實(shí)驗(yàn)報(bào)告"]=df.第三次實(shí)驗(yàn)報(bào)告.map(m)
(4)隨機(jī)生成假設(shè)的期末成績(jī),取值區(qū)間為40-100分。將自己的期末成績(jī)改成你覺得可能考到的分?jǐn)?shù)。
def cj(x): return random.randint(40,100) df["期末成績(jī)"]="" df["期末成績(jī)"]=df.期末成績(jī).map(cj) df
(5)按照平時(shí)成績(jī)20%,實(shí)驗(yàn)成績(jī)30%,期末成績(jī)50%的比例計(jì)算綜合成績(jī)。
df["綜合成績(jī)"]=df["期末成績(jī)"]*0.5+df["平時(shí)成績(jī)"]*0.2+df["第一次實(shí)驗(yàn)報(bào)告"]*0.1+\ df["第二次實(shí)驗(yàn)報(bào)告"]*0.1+df["第三次實(shí)驗(yàn)報(bào)告"]*0.1 df
(6)輸出你自己的平時(shí)成績(jī),實(shí)驗(yàn)成績(jī),期末成績(jī)和綜合成績(jī)。
df[df.姓名=='只為你220']
(7)統(tǒng)計(jì)全班綜合成績(jī)[90,100],[80,89],[70,79],[60-69],[0,59]各段成績(jī)的人數(shù),并畫餅圖。
y=pd.cut(df['綜合成績(jī)'],bins=[0,60,70,80,90,100],\ labels=['0-59','60-69','70-79','80-89','90-100'])#分區(qū)間 a=y.value_counts()#統(tǒng)計(jì)區(qū)間人數(shù) print(a)
plt.rcParams['font.sans-serif']=['SimHei'] a.plot(kind='pie',title='學(xué)生成績(jī)區(qū)間統(tǒng)計(jì)圖')
(8)將完整的成績(jī)保存到score.xlsx文件中,打開excel檢查輸出是否正確。
將結(jié)果保存為.xlsx文件
df.to_excel(excel_writer="score.xlsx",index=False,encoding='utf-8')
將剛剛保存的.xlsx文件打開,查看結(jié)果是否正確
pd.read_excel("score.xlsx")
“python如何利用pandas分析學(xué)生期末成績(jī)”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。