【问题描述】根据一组学生成绩,找出5个最高的总分。
【输入形式】csv文件
【输出形式】txt文件
【样例输入】
【样例输出】
直接使用二维数组的转置和.sum()函数对列的统计,再使用sorted函数对数组元素排序和切片再套娃写入文件,注意write是不允许写入列表等非字符串的数据类型吧,我并没有使用pandas的写入函数,只用了读取,用pandas 的写入应该也是可以的
import pandas as pd
if __name__ == '__main__':
[[x.write(str(y)+'n') for y in sorted(pd.read_csv('scores.csv').T.sum().values,reverse=True)[0:5]] and x.close() for x in [open('summary.txt','w')]]
实验:不使用转置,使用pandas里面的函数方法进行统计排序和写入文件:写入只写入values的方法:
df.to_csv(r’path’, header=None, index=None, sep=’ ', mode=‘w’) -----#mode就是写入格式了,跟内置文件操作一样a表示附加,w表示清空原有的再写入
import pandas as pd
if __name__ == '__main__':
pd.read_csv('scores.csv').apply(lambda x:sum(x),axis=1).sort_values(ascending=False)[0:5].to_csv('summary.txt' ,header=None, index=None, sep=' ', mode='w')



