python用csv代码处理问题

读文件”成绩单.csv”,获取文件中的信息,完成如下内容:
(1)总分进行升序排序后,输出总分最低分和最高分;
(2)按总分升序,输出前n名同学和后n名同学成绩信息(n为输入,要求为非负数,当n大于数据行数时,按实际行数输出);
(3)输出每题的平均成绩(保留1位小数);
(4)采用字典统计优秀(>=90)和不及格(<18)的人数,并输出统计结果。
12750,罗明松,0121701100106,5,5,5,5,5,5,30
11806,金川,0121701100116,5,5,5,5,5,5,30
12739,戈扬,0121701100117,5,5,5,5,5,5,30
12058,罗旋,0121701100119,5,5,5,5,5,5,30
12261,蒋维旸,0121701100127,5,5,5,5,5,5,30
12529,朱佳年,0121701100203,0,0,0,0,0,0,0
11795,陈展曦,0121701100204,5,5,5,5,5,5,30
11808,杨鹏,0121701100206,5,5,0,0,0,0,10
12347,李世祥,0121701100208,0,0,0,0,0,0,0
11796,袁崟,0121701100213,5,5,5,5,5,5,30
12010,龚哨兵,0121701100221,5,5,0,0,0,5,15
12055,鄧靖兒,0121701100236,0,5,5,0,0,0,10
12005,马翰丞,0121701100307,0,0,0,0,0,0,0
11803,陆新琪,0121701100311,5,5,5,5,5,5,30
12376,陈宗明,0121701100313,0,0,0,0,0,0,0
11804,李思远,0121701100326,5,5,5,5,5,5,30
12004,郑循天,0121701100328,0,0,0,0,0,0,0
12130,刘欣,0121701100330,0,5,5,5,5,5,25
12047,郑澳君,0121701100332,0,0,0,5,0,0,5
12015,刘丽云,0121701100333,5,5,5,5,5,5,30
12079,刘琦,0121701100334,5,0,5,5,5,5,25
12093,刘奕彤,0121701100335,5,5,5,5,5,5,30
12116,汪才峰,0121701100401,5,0,0,5,0,0,10
13342,童杰,0121701100403,0,5,5,5,0,0,15
12028,舒崇瑞,0121701100406,5,5,5,5,5,5,30
11940,黄炜,0121701100413,5,5,5,5,5,5,30
11930,覃宇坤,0121701100414,5,5,5,5,5,5,30
12056,周航,0121701100423,0,0,0,0,0,0,0
11969,王雪,0121701100431,5,5,5,5,5,5,30
12119,刘子雨,0121701100507,5,5,5,0,0,0,15
12120,刘后傲,0121701100510,5,5,0,5,0,5,20
13313,张自强,0121701100512,0,0,0,0,0,5,5
12884,孙金新,0121701100521,0,0,0,5,0,5,10
11916,杨旺霖,0121701100527,5,5,5,5,5,5,30
11965,尹春森,0121701100612,0,0,0,0,0,5,5
11955,罗家威,0121701100622,5,5,5,5,5,5,30
12575,段宁,0121428260128,0,0,0,0,0,0,0

你这个总分最高就30分?哪来的优秀?

最高分只有30分。以优秀(>=25)和不及格(<=5)来统计:

with open('成绩单.csv','r') as f:
    data = f.read()

data = [d.split(',') for d in data.split('\n')]
for i in range(len(data)):
    for j in range(3,len(data[0])):
        data[i][j] = int(data[i][j])

data.sort(key=lambda x:x[-1])

print('输出总分最低分和最高分:',data[0][-1],data[-1][-1])

n = int(input())

for i in range(5):
    print(data[i][1],':',*data[i][4:])
for i in range(5):
    print(data[~i][1],':',*data[~i][4:])

for i in range(3,9):
    print(round(sum([a[i] for a in data])/len(data),1))

dic = {}

for i in data:
    dic[i[-1]] = dic.get(i[-1],0)+1

for k,v in dic.items():
    if k>=25:
        print('优秀:',k,'人数:',v)
    elif k<=5:
        print('不及格:',k,'人数:',v)