研究生录取数据分析 Python123

描述

本题附件包含500名国际高校的研究生申请人的相关信息和预测的录取概率数据。‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬

下表为文件中字段及对应含义:‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬

Serial No GRE Score TOEFL Score University Rating SOP LOR CGPA Research Chance of Admit 
编号1-500 GRE分数 托福分数 本科大学排名分 个人陈述分数 推荐信分数 本科绩点 研究经历(1/0) 录取概率(0-1之间)

研究经历:1代表有,0代表无‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬

录取概率:0-1之间的小数,如0.73代表73%‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬

请按照下列要求对文件中数据进行统计和分析,并严格按照下面所示格式输出结果。‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬

(描述中示例仅为格式示例,数据与测试用例无关)‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬

输入一个数据n‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬

1:如果n为'1',抽取数据中录取概率大于等于80%的记录,计算其中大学排名评分大于等于4分的百分比,程序结束。‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬

1
Top University in >=80%:11.11%

2:如果n为'Research',分别统计和输出录取概率大于等于90%的学生和录取概率小于等于70%的学生中,有研究经历的学生占比,程序结束。(百分比保留两位小数)‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬

Research
Reseach in >=90%:91.03%
Reseach in <=70%:22.10%

3:如果n为'2',输出录取概率大于等于80%的学生中TOEFL分数的平均分,最高分和最低分,程序结束。(保留两位小数)‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬

2
TOEFL Average Score:300.12
TOEFL Max Score:323.00
TOEFL Min Score:299.00

4:如果n为'3',输出录取概率大于等于80%的学生中绩点的平均分,最高分和最低分,程序结束。(保留三位小数)‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬

3
CGPA Average Score:4.333
CGPA Max Score:4.910
CGPA Min Score:4.134

5:如果非以上输入,则输出'ERROR',程序结束。

def readfile1(filename):#用于筛选出概率大于等于80%,返回列表
    ls = []
    with open(filename,"r") as fp:
        s = fp.readline()
        s = fp.readline()
        while s:
            l = s.strip().split(",")
            if eval(l[-1])>=0.8:
                ls.append(l)
            s = fp.readline()
    return ls
def readfile2(filename):#用于筛选出概率大于等于90%以及小于等于70%,返回列表
    ls1 = []
    ls2 = []
    with open(filename,"r") as fp:
        s = fp.readline()
        s = fp.readline()
        while s:
            l = s.strip().split(",")
            if eval(l[-1])>=0.9:
                ls1.append(l)
            if eval(l[-1])<=0.7:
                ls2.append(l)
            s = fp.readline()
    return ls1,ls2
    
    
n = input()
if n=='1':
    ls = readfile1("admit2.csv")
    cnt = 0#用于记录排名大于4的个数
    for row in ls:
        if eval(row[1])>=4:
            cnt += 1
    print("Top University in >=80%%:%.2f%%"%(cnt/len(ls)*100))
elif n == 'Research':
    ls1,ls2 = readfile2("admit2.csv")
    #print(ls1)
    cnt1 = len([i for i in ls1 if i[-4] == '1'])#大于90%,且有研究经历的个数
    cnt2 = len([i for i in ls2 if i[-4] == '1'])#小于70%,且有研究经历的个数
    print("Reseach in >=90%%:%.2f%%"%(cnt1/len(ls1)*100))
    print("Reseach in <=70%%:%.2f%%"%(cnt2/len(ls2)*100))
elif n=='2':
    ls = readfile1("admit2.csv")
    l = []#保存所有TOEFL分数
    for i in ls:
        l.append(float(i[3]))
    print("TOEFL Average Score:%.2f"%(sum(l)/len(l)))
    print("TOEFL Max Score:%.2f"%max(l))
    print("TOEFL Min Score:%.2f"%min(l))
elif n=='3':
    ls = readfile1("admit2.csv")
    l = []#保存所有绩点分数
    for i in ls:
        l.append(float(i[-5]))
    print("CGPA Average Score:%.3f"%(sum(l)/len(l)))
    print("CGPA Max Score:%.3f"%max(l))
    print("CGPA Min Score:%.3f"%min(l))
else:
    print("ERROR")

你可能感兴趣的:(python)