Python學習筆記-Pandas讀取107學年度大專校院公開資訊,依需求統計各項資料!!

線上讀取大專校院科系人數

In [1]:
import pandas as pd
url="http://stats.moe.gov.tw/files/detail/107/107_students.csv"
df = pd.read_csv(url)
df.head()
Out[1]:
學校代碼 學校名稱 科系代碼 科系名稱 日間∕進修別 等級別 一年級男生 一年級女生 二年級男生 二年級女生 五年級男生 五年級女生 六年級男生 六年級女生 七年級男生 七年級女生 延修生男生 延修生女生 縣市名稱 體系別
0 1 國立政治大學 01111001 教育學系 D 日 D 博士 9 13 6 16 6 5 7 5 3 2 0 0 30 臺北市 1 一般
1 1 國立政治大學 01111001 教育學系 D 日 M 碩士 6 10 1 13 0 0 0 0 0 0 0 0 30 臺北市 1 一般
2 1 國立政治大學 01111001 教育學系 D 日 B 學士 16 41 14 39 0 0 0 0 0 0 5 14 30 臺北市 1 一般
3 1 國立政治大學 01114005 教育行政與政策研究所 D 日 M 碩士 7 12 5 5 0 0 0 0 0 0 0 0 30 臺北市 1 一般
4 1 國立政治大學 01114006 學校行政碩士在職專班 N 職 M 碩士 5 17 5 14 2 5 0 0 0 0 0 0 30 臺北市 1 一般
5 rows × 24 columns

順利讀取資料後,先列出欄位名稱

In [2]:
df.columns
Out[2]:
Index(['學校代碼', '學校名稱', '科系代碼', '科系名稱', '日間∕進修別', '等級別', '一年級男生', '一年級女生',
       '二年級男生', '二年級女生', '三年級男生', '三年級女生', '四年級男生', '四年級女生', '五年級男生', '五年級女生',
       '六年級男生', '六年級女生', '七年級男生', '七年級女生', '延修生男生', '延修生女生', '縣市名稱', '體系別'],
      dtype='object')

如何知道總共有多少間學校呢?

基本上就從學校代碼和學校名稱來操作,相同的只保留一個,就能計算出有多少間學校了

In [3]:
df['學校代碼'].drop_duplicates().count()
Out[3]:
153
In [4]:
df['學校名稱'].drop_duplicates().count()
Out[4]:
153

如果想知道大學校院總共有多少科系呢?

以科系名稱來說,答案是107學年度時,總共有3527個科系

In [5]:
df['科系名稱'].drop_duplicates().count()
Out[5]:
3527

至於在教育部的分類中,全國總共有多少個類別科系呢?

答案是2730

In [6]:
df['科系代碼'].drop_duplicates().count()
Out[6]:
2730

可以看一下教育相關的科系代碼是01111001,有不少間學校都有這個科系代碼

In [7]:
df[df['科系代碼'] == '01111001']
Out[7]:
學校代碼 學校名稱 科系代碼 科系名稱 日間∕進修別 等級別 一年級男生 一年級女生 二年級男生 二年級女生 五年級男生 五年級女生 六年級男生 六年級女生 七年級男生 七年級女生 延修生男生 延修生女生 縣市名稱 體系別
0 1 國立政治大學 01111001 教育學系 D 日 D 博士 9 13 6 16 6 5 7 5 3 2 0 0 30 臺北市 1 一般
1 1 國立政治大學 01111001 教育學系 D 日 M 碩士 6 10 1 13 0 0 0 0 0 0 0 0 30 臺北市 1 一般
2 1 國立政治大學 01111001 教育學系 D 日 B 學士 16 41 14 39 0 0 0 0 0 0 5 14 30 臺北市 1 一般
620 4 國立臺灣師範大學 01111001 教育學系 D 日 D 博士 5 5 8 9 3 9 7 5 4 7 0 0 30 臺北市 3 師範
621 4 國立臺灣師範大學 01111001 教育學系 D 日 M 碩士 5 16 4 21 0 0 0 0 0 0 0 0 30 臺北市 3 師範
6656 1027 慈濟大學 01111001 教育研究所中等學校教師在職進修教學碩士學位班 N 職 M 碩士 0 0 1 14 1 2 0 0 0 0 0 0 15 花蓮縣 1 一般
8756 1067 台灣首府大學 01111001 教育研究所 D 日 M 碩士 2 14 2 8 0 0 0 0 0 0 0 0 11 臺南市 1 一般
9765 3002 臺北市立大學 01111001 教育學系 D 日 D 博士 3 11 3 8 3 11 3 7 11 24 0 0 30 臺北市 1 一般
9766 3002 臺北市立大學 01111001 教育學系 D 日 M 碩士 0 6 1 12 3 0 2 3 0 0 0 0 30 臺北市 1 一般
9767 3002 臺北市立大學 01111001 教育學系 D 日 B 學士 11 51 16 43 0 0 0 0 0 0 2 14 30 臺北市 1 一般
92 rows × 24 columns

接下來看一下政治大學學士班的統計資料

In [8]:
df[(df['學校代碼'] == 1) & (df['等級別']== 'B 學士') ].sum()
Out[8]:
學校代碼                                                     37
學校名稱      國立政治大學國立政治大學國立政治大學國立政治大學國立政治大學國立政治大學國立政治大學國立政治...
科系代碼      0111100102221020022220310223102202311009023110...
科系名稱      教育學系歷史學系民族學系哲學系英國語文學系日本語文學系阿拉伯語文學系韓國語文學系土耳其語文學...
日間∕進修別    D 日D 日D 日D 日D 日D 日D 日D 日D 日D 日D 日D 日D 日D 日D 日D...
等級別       B 學士B 學士B 學士B 學士B 學士B 學士B 學士B 學士B 學士B 學士B 學士B ...
一年級男生                                                   899
一年級女生                                                  1287
二年級男生                                                   890
二年級女生                                                  1332
三年級男生                                                   878
三年級女生                                                  1325
四年級男生                                                   990
四年級女生                                                  1240
五年級男生                                                     0
五年級女生                                                     0
六年級男生                                                     0
六年級女生                                                     0
七年級男生                                                     0
七年級女生                                                     0
延修生男生                                                   326
延修生女生                                                   463
縣市名稱      30 臺北市30 臺北市30 臺北市30 臺北市30 臺北市30 臺北市30 臺北市30 臺...
體系別       1 一般1 一般1 一般1 一般1 一般1 一般1 一般1 一般1 一般1 一般1 一般1 ...
dtype: object

如果要知道政治大學學士班的學生數,就可以如下統計:

學生數為9630人。

In [9]:
undergraduate = df[(df['學校代碼'] == 1) & (df['等級別']== 'B 學士') ].sum()
undergraduate['一年級男生':'延修生女生'].sum()
Out[9]:
9630

在〈Python學習筆記-Pandas讀取107學年度大專校院公開資訊,依需求統計各項資料!!〉中有 1 則留言

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *