专栏/Excel表格排序学生成绩(附源码)

Excel表格排序学生成绩(附源码)

2021年03月04日 06:19--浏览 · --点赞 · --评论
牛逼鸭
粉丝:736文章:8

        Excel统计数据时,经常需要排序或者比对数据等操作。使用excel自带的VBA有时候不如python方便,因此这里分享一个用python处理学生成绩表格的实例项目。

        如头图所示(可能看不太清..后面有大图展示),左边的原始表格提供所有学生的各科成绩,处理后的表格对成绩按从高到低进行了排序,并且展示了各个学生的总分、平均分,以及全部学生各科的平均分。

一、源码

        1.因为项目不大,一次性粘贴上全部代码,注意提前安装pandas包即可:

pip install pandas

        2.脚本内容:

#  https://space.bilibili.com/32540084
import pandas as pd
# 文件输入位置:
filePath = "E:/pythonTest/excel/测试.xlsx"
# 文件输出位置:
outPath = "E:/pythonTest/excel/test2Out.xlsx"
dataNull = []
data1 = []
df1 = pd.read_excel(filePath)
Mrow = df1.shape[0]
Mcol = df1.columns.size
countTemp = 0
count = []
average = []
print(Mrow, "行", Mcol, "列")

allCore =["总计"] # 初始化所有学生单学科总分,以及全科总分
for i in range(0, Mcol+1):
    allCore.append(0)

for i in range(0, Mrow):
    countTemp = 0
    for j in range(1, Mcol):
        countTemp += df1.iloc[i, j]
        allCore[j] += df1.iloc[i, j] #单科总分
        allCore[Mcol] += df1.iloc[i, j] #全科总分
    # print(countTemp)
    count.append(countTemp)
    average.append(int(countTemp/(Mcol-1)))

df1["总计"] = count
df1["平均"] = average
# 排序
df1.sort_values("总计", ascending=False, inplace=True)

atEnd = [{}]
allCore[0]="平均"
for i in range(1,Mcol+1):
    allCore[i]=int((allCore[i]/(Mrow)))
allCore[Mcol]=int((allCore[Mcol]))
allCore[Mcol+1]=int((allCore[Mcol]/(Mcol-1)))

dict2 = dict()
for i in range(0,Mcol+2):
    if(i == Mcol):
        dict2["总计"] = allCore[i]
    elif(i == Mcol+1):
        dict2["平均"] = allCore[i]
    else:
        dict2[df1.columns[i]] = allCore[i]

atEnd[0] = dict2

df2 = pd.DataFrame(atEnd)
dfOut = pd.merge(df1,df2,how='outer')
print("最终结果")
print(dfOut)

dfOut.to_excel(outPath,index=False)

二、使用说明

        第一步:准备一个如图所示的初始文档,名称可以是中文。学生数与学科数大于1即可,脚本会自动识别数量。意数据一定要从第二行第二列起始

        第二步:使用python打开脚本,filePath后写输入文件的位置,outPath后写输出文件的位置,注意路径内的斜杠是正斜杠。输出的文件不需要提前创建,但是如果已经有这个文件了,运行程序后将会进行覆盖。

# 文件输入位置:
filePath = "E:/pythonTest/excel/输入文件.xlsx"
# 文件输出位置:
outPath = "E:/pythonTest/excel/输出文件.xlsx"

        第三步:右键运行。注意运行中不能打开要输出的文件,不然会因为无法保存文件而报错。

自己新建的项目叫什么红框引号内就显示什么

        第四步:找到输出的文件,再根据自己的需求二次优化内容。

输出的内容,按分数进行了排序,并且多了一行两列

三、代码讲解

        因为这一篇主要是分享,所以就不写讲解了,如果有疑惑或者使用问题可以评论或私信。

欢迎关注

投诉或建议

国外留学毕业证书制作公司南京代做海外文凭定做石家庄代办国外学历证补办南宁定做海外留学学位证代做长春办海外学位定制银川代办海外留学学位证代做南宁代做国外学位证书定制大连办理海外学位长春国外学位证书制作上海办国外学历证代做国外成绩单代做南京定做海外成绩单代做银川做海外留学学位证南宁办海外证件补办代做国外学位证补办武汉制作海外留学学位证代做乌鲁木齐做海外学位补办成都做海外博士毕业证办理青岛海外证书定做南宁办海外学历证代办青岛代办国外成绩单补办乌鲁木齐代办海外证书定制郑州办海外证件代做大连办海外学历代做济南国外大学毕业证代做西宁定做海外文凭毕业证定制兰州补办海外证书代做太原制作国外留学毕业证办理西安办理国外学位证贵阳补办海外博士毕业证补办南昌代做国外毕业证办理淀粉肠小王子日销售额涨超10倍罗斯否认插足凯特王妃婚姻让美丽中国“从细节出发”清明节放假3天调休1天男孩疑遭霸凌 家长讨说法被踢出群国产伟哥去年销售近13亿网友建议重庆地铁不准乘客携带菜筐雅江山火三名扑火人员牺牲系谣言代拍被何赛飞拿着魔杖追着打月嫂回应掌掴婴儿是在赶虫子山西高速一大巴发生事故 已致13死高中生被打伤下体休学 邯郸通报李梦为奥运任务婉拒WNBA邀请19岁小伙救下5人后溺亡 多方发声王树国3次鞠躬告别西交大师生单亲妈妈陷入热恋 14岁儿子报警315晚会后胖东来又人满为患了倪萍分享减重40斤方法王楚钦登顶三项第一今日春分两大学生合买彩票中奖一人不认账张家界的山上“长”满了韩国人?周杰伦一审败诉网易房客欠租失踪 房东直发愁男子持台球杆殴打2名女店员被抓男子被猫抓伤后确诊“猫抓病”“重生之我在北大当嫡校长”槽头肉企业被曝光前生意红火男孩8年未见母亲被告知被遗忘恒大被罚41.75亿到底怎么缴网友洛杉矶偶遇贾玲杨倩无缘巴黎奥运张立群任西安交通大学校长黑马情侣提车了西双版纳热带植物园回应蜉蝣大爆发妈妈回应孩子在校撞护栏坠楼考生莫言也上北大硕士复试名单了韩国首次吊销离岗医生执照奥巴马现身唐宁街 黑色着装引猜测沈阳一轿车冲入人行道致3死2伤阿根廷将发行1万与2万面值的纸币外国人感慨凌晨的中国很安全男子被流浪猫绊倒 投喂者赔24万手机成瘾是影响睡眠质量重要因素春分“立蛋”成功率更高?胖东来员工每周单休无小长假“开封王婆”爆火:促成四五十对专家建议不必谈骨泥色变浙江一高校内汽车冲撞行人 多人受伤许家印被限制高消费

国外留学毕业证书制作公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化