2020年5月11日 星期一

Python學習筆記-Pandas批次讀取105-108學年度大專校院學生人數,統計各學年度學校合計學生數!!

import pandas as pd
import os
path = os.getcwd()

"""
相關檔案可參考以下網址下載:
https://depart.moe.edu.tw/ED4500/News_Content.aspx?n=5A930C32CC6C3818&sms=91B3AAE8C6388B96&s=596D9D77281BE257
"""
# List files:
files = os.listdir(path)
# 印出目錄下所有檔案名稱
print(files)

# 選擇檔案名稱第4-10碼為「student」的檔案
files_xls = [f for f in files if f[4:11] == 'student']
print(files_xls)
['105_student.xls', '106_student.xls', '107_student.xls', '108_student.xls']
In [2]:
df = pd.DataFrame()
for f in files_xls:
    # 批次讀入excel檔,從第3列開始
data = pd.read_excel(f, skiprows = 2)
    # 新增「學年」欄位
data['學年'] = int(f[:3]) df = df.append(data) df
Out[2]:
學校代碼學校名稱日間∕進修別等級別總計男生計女生計一年級男生一年級女生二年級男生...五年級女生六年級男生六年級女生七年級男生七年級女生延修生男生延修生女生縣市名稱體系別學年
01國立政治大學D 日D 博士9816053761136691...4884406433--30 臺北市1 一般105
11國立政治大學D 日M 碩士396218082154617755622...-------30 臺北市1 一般105
21國立政治大學D 日B 學士97113912579987213471017...-----32745530 臺北市1 一般105
31國立政治大學N 職M 碩士1718882836281297261...30------30 臺北市1 一般105
42國立清華大學D 日D 博士1645126438123583205...461254317354--18 新竹市1 一般105
..................................................................
7891293崇仁醫護管理專科學校D 日5 五專333041029208158487...564----114410 嘉義縣2 技職108
7903002臺北市立大學D 日D 博士234101133141914...1510171930--30 臺北市1 一般108
7913002臺北市立大學D 日M 碩士1215420795156242105...371227----30 臺北市1 一般108
7923002臺北市立大學D 日B 學士527023352935569738527...-----16614030 臺北市1 一般108
7933002臺北市立大學N 職M 碩士109029879210727487...441525----30 臺北市1 一般108

3295 rows × 26 columns

In [3]:
df = df[['學校代碼', '學年', '學校名稱', '等級別', '總計']]
df.head()
Out[3]:
學校代碼學年學校名稱等級別總計
01105國立政治大學D 博士981
11105國立政治大學M 碩士3962
21105國立政治大學B 學士9711
31105國立政治大學M 碩士1718
42105國立清華大學D 博士1645
In [4]:
df = df.groupby(['學校代碼', '學校名稱', '學年']).sum()
df
Out[4]:
總計
學校代碼學校名稱學年
1國立政治大學10516372
10616353
10716343
10816390
2國立清華大學10512466
............
1293崇仁醫護管理專科學校1083330
3002臺北市立大學1057631
1067675
1077774
1087809

620 rows × 1 columns

In [5]:
df = df.unstack(2)
df
Out[5]:
總計
學年105106107108
學校代碼學校名稱
1國立政治大學16372.016353.016343.016390.0
2國立清華大學12466.016664.016657.016678.0
3國立臺灣大學31783.031802.031745.031945.0
4國立臺灣師範大學15307.015426.015582.015716.0
5國立成功大學21119.021252.021276.021456.0
..................
1290崇仁醫護管理專科學校3478.03503.0NaNNaN
1291聖母醫護管理專科學校3525.03155.02777.02561.0
1292新生醫護管理專科學校6022.06024.06058.06031.0
1293崇仁醫護管理專科學校NaNNaN3392.03330.0
3002臺北市立大學7631.07675.07774.07809.0

164 rows × 4 columns

In [ ]:
 

【公告】網站遷移,未來內容將發表於新網站!!

 受限於blogger本身架構與限制,本網站所有內容已遷移至新網站,網址如下: https://kuo.us.to/wordpress/