1. 程式人生 > >學生手冊成績分析-以學院為單位進行劃分

學生手冊成績分析-以學院為單位進行劃分

以學院為單位進行劃分

import pandas as pd
import numpy as np

匯入學生手冊考試成績資料

df = pd.read_excel("學生手冊考試成績.xlsx")

預處理成績資料dtype

df['總成績'].replace('缺考','-1',inplace=True)

df[u'總成績']=df[u'總成績'].astype('int64')

建立學院資訊

data = np.array(['法政與公共管理學院','國際文化交流學院', '化學與材料科學學院', '教育學院' , 
                 '歷史文化學院','旅遊系','馬克思主義學院','美術與設計學院','軟體學院','商學院',
                 '生命科學學院','數學與資訊科學學院','體育學院','外國語學院','文學院','物理科學與資訊工程學院',
                 '新聞傳播學院','資訊科技學院','音樂學院','職業技術學院','中燃工學院','資源與環境科學學院'])

college = pd.Series(data)

H = pd.DataFrame(np.random.randn(22,8),columns=["學院名稱",'總人數','通過人數','80分以上','75分以上','未通過人數','及格率','優秀率'])

生成22個學院的成績表

for i in range(0,22):
    m = df.loc[(df['學院名稱'] == college[i]), ['姓名', '學號', '學院名稱', '班級', '總成績', '認證狀態']]
    a=m.loc[(df['總成績'] >= 80)].count()[0]
    b=m.loc[(df['總成績'] >= 75)].count()[0]
    c=m.loc[(df['總成績'] >= 70)].count()[0]
    d=m.count()[0]
    e=format(float(a)/float(d),'.3f')
    g=format(float(c)/float(d),'.3f')
    h=d-c
    H.loc[i]=[college[i],d,c,a,b,h,g,e]
    m.reset_index(drop = True)#重建索引
    #m.to_excel(college[i]+".xlsx", sheet_name='學生手冊考試成績')

H.to_excel("學院分析.xlsx", sheet_name='學生手冊考試成績')