<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          普通高中選課數(shù)據(jù)分析和可視化(4)

          共 2785字,需瀏覽 6分鐘

           ·

          2021-06-01 11:39

          前情回顧:

          上一篇文章我們介紹了“普通高中選課數(shù)據(jù)分析和可視化”項(xiàng)目的“3.5  繪制各學(xué)科關(guān)聯(lián)度散點(diǎn)圖”,“3.6  7選3選課組合數(shù)據(jù)處理”,“3.7  繪制各校各選課組合人數(shù)柱狀圖”和“3.8  繪制各校各選課組合人數(shù)占比餅圖”,接下來我們繼續(xù)項(xiàng)目實(shí)踐之旅。

          3.9  生成各校Excel報(bào)名文件

          首先打開"xk73.csv"文件,讀取某市普通高中選課匯總數(shù)據(jù),存儲(chǔ)到DataFrame對(duì)象df中;再遍歷每一所學(xué)校,生成73原始報(bào)名數(shù)據(jù)到excel文件。

          核心代碼(完整代碼詳見源代碼文件“73生成各校Excel原始報(bào)名文件.py”):

          # 讀文件source_df = pd.read_csv("xk73.csv",sep=',',header='infer',encoding='utf-8')schools = source_df['學(xué)校代碼'].unique() #生成學(xué)校代碼名稱列表
          for sch in schools: #遍歷每一所學(xué)校,生成7選3原始報(bào)名數(shù)據(jù)到excel文件 sch_df = source_df[source_df['學(xué)校代碼']==sch] writer = pd.ExcelWriter(f'各校原始報(bào)名文件\{sch}.xlsx') sch_df.to_excel(writer,sheet_name='7選3原始數(shù)據(jù)',startcol=0,index=False) writer.save() writer.close()


          3.10  生成各校7選3固定班級(jí)名冊(cè)

          先讀取學(xué)校原始報(bào)名文件,合成學(xué)生選課組合信息后,篩選出報(bào)考人數(shù)達(dá)到固定班人數(shù)下限的選課組合,存儲(chǔ)到DataFrame對(duì)象stu_1,生成73固定班級(jí)名冊(cè)。把未達(dá)到固定班人數(shù)下限的選課組合信息存儲(chǔ)到stu_2,以備后續(xù)生成72固定班級(jí)名冊(cè)。

          15 某校73固定班級(jí)名冊(cè)Excel表格截圖

          核心代碼(完整代碼詳見源代碼文件“73讀取Excel原始報(bào)名文件并分班.py”):

              # 合成學(xué)生選課組合信息    courses = []      for r in sch_df.index:         km = ""        for c in sch_df.columns:            if sch_df.at[r,c] == 1:                km += kms_dic[c]        courses.append(km)    zuhe_df = sch_df.loc[:, ['學(xué)生編號(hào)','學(xué)校代碼','姓名']] #篩選某些行和列    zuhe_df.insert(3, '選課組合', courses) #插入選課組合列    zuhe_df = zuhe_df.sort_values(['選課組合'],ascending=False)        #生成7選3固定班級(jí)名單    kmzh_3_nums = zuhe_df['選課組合'].value_counts()    base = 40  #固定班人數(shù)下限    in_list = [c for c in kmzh_3_nums.index if kmzh_3_nums[c]>=base]    stu_1 = zuhe_df.loc[zuhe_df['選課組合'].isin(in_list)]  #也可以去掉.loc    stu_2 = zuhe_df.loc[~zuhe_df['選課組合'].isin(in_list)] #不在,前面加一個(gè)~


          3.11  生成各校7選2固定班級(jí)名冊(cè)

          在生成73固定班級(jí)名冊(cè)后,把剩余學(xué)生的選課信息存儲(chǔ)到stu_2,繼續(xù)篩選出報(bào)考人數(shù)達(dá)到固定班人數(shù)下限的選課組合,存儲(chǔ)到DataFrame對(duì)象stu_3,生成72固定班級(jí)名冊(cè)。并把剩余學(xué)生的選課信息存儲(chǔ)到stu_4,以便走班管理,或引導(dǎo)他\她們重新選課。

          16 某校72固定班級(jí)名冊(cè)Excel表格截圖

          核心代碼(完整代碼詳見源代碼文件“73讀取Excel原始報(bào)名文件并分班.py”):

          #生成7選2固定班級(jí)名單    kmzh_2_df = pd.DataFrame(columns=stu_2.columns)    kmzh_2_df["組合2"] = ""    base = 40 #固定班人數(shù)下限    for k in kmzh_2:        tmp = stu_2.loc[(stu_2["選課組合"].str.contains(k[0])) & (stu_2["選課組合"].str.contains(k[1]))]        tmp.insert(4, "組合2", [k] * len(tmp))         kmzh_2_df = kmzh_2_df.append(tmp)    kmzh_2_nums = kmzh_2_df['組合2'].value_counts()    in_list = [c for c in kmzh_2_nums.index if kmzh_2_nums[c]>=base]    stu_3 = kmzh_2_df.loc[kmzh_2_df['組合2'].isin(in_list)]  #也可以去掉.loc    stu_4 = kmzh_2_df.loc[~kmzh_2_df['組合2'].isin(in_list)] #不在,前面加一個(gè)~


          說明:因?yàn)楸卷?xiàng)目?jī)?nèi)容較多,故寫成系列文章分成多次分享,請(qǐng)大家稍安勿躁哦。

          需要本文word版或者相關(guān)源代碼的,可以加入“Python算法之旅”知識(shí)星球參與討論和下載文件,Python算法之旅”知識(shí)星球匯集了數(shù)量眾多的同好,更多有趣的話題在這里討論,更多有用的資料在這里分享。


          我們專注Python算法,感興趣就一起來!



          相關(guān)優(yōu)秀文章:

          閱讀代碼和寫更好的代碼

          最有效的學(xué)習(xí)方式

          斌哥教你自制多功能單詞本

          普通高中選課數(shù)據(jù)分析和可視化(1)

          普通高中選課數(shù)據(jù)分析和可視化(2)

          普通高中選課數(shù)據(jù)分析和可視化(3)

          瀏覽 40
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  亚洲天堂精品在线观看 | 三级片久久 | 欧美色图清纯唯美亚洲色图 | 国语对白av | 伊人在线9999 |