代码大学,一直都是神圣的学习知识的殿堂,各个世界级名校都不断地为社会输送着人才,今天我们就来盘一盘世界大学的排名情况。
我们这里选取的就是上海交通大学的 ARWU 网站
http://www.shanghairanking.com/ARWU2019.html
该网站包含了历年的大学分数以及排名情况。
通过分析页面可以发现,通过 pandas 的 read_html 函数来获取相关信息是最为方便的
table = pd.read_html(url)
college = table[0]
同时我们还发现,大学所对应的国家数据是图片,所以需要特殊处理下
def get_country_name(html):
soup = BeautifulSoup(html,'lxml')
countries = soup.select('td > a > img')
lst = []
for i in countries:
src = i['src']
pattern = re.compile('flag.*/(.*?).png')
country = re.findall(pattern,src)[0]
lst.append(country)
return lst
最后我们把得到的数据进行下处理,去除掉不需要的字段,再增加年份字段等
for i in range(2005, 2020):
print('year', i)
url = 'http://www.shanghairanking.com/ARWU%s.html' % i
html = requests.get(url).content
table = pd.read_html(url)
college = table[0]
college.columns = ['world rank','university', 2,3, 'score', 5]
college.drop([2,3,5],axis = 1,inplace = True)
college['year'] = i
college['index_rank'] = college.index
college['index_rank'] = college['index_rank'].astype(int) + 1
college['country'] = get_country(html)
college.to_csv(r'College.csv', mode='a', encoding='utf_8_sig', header=True, index=0)
这样,我们就得到了 College.csv 文件
下面我们就可以做一些简单的分析了。
可以看到,哈佛最为世界第一的名校,其综合评分为100分,接下来就是斯坦福和剑桥大学,不过综合评分的差距还是蛮大的。
同时在前十名学府中,美国独占8席,英国占据2席,确实牛的不行。
下面我们再来看看在 top100 大学中,各个国家所占的比例
可以清晰的看出,美国作为当今唯一的超级大国,其顶尖学府基本占据了世界一般的水平,可以说强大的人才造就能力使其强大的科研能力的坚强后盾!
而英国和澳大利亚紧随其后,但是却远远不能比拟。
中国有4所高校挤进了世界100强,分别是清华、北大、浙江和上海交通大学,可以说它们是中国最好的大学,也同时肩负着振兴中华,输出人才的重大任务。
最后,我们还是以动态视频来结束今天的分享,支持原创就请给个“在看”吧!
完整代码:
https://github.com/zhouwei713/data_analysis/tree/master/college_rank