自动判分系统

作者: Neural_PDE | 来源:发表于2019-04-10 21:18 被阅读44次

#目标是按照队员最高分数计入为 队伍分数
#首先是我们的数据集 来自腾讯微云
#https://share.weiyun.com/5ov0DKt
#下载好之后直接把两个文件放入D盘即可,然后直接复制下面的内容就OK啦

####查看某列中的答案长什么样子(以便一会制作标准答案 来判分)####
import pandas as pd
import numpy as np
data=pd.read_excel('D:/编程大赛B题.xls',header=0)
aa=data["编程2"][0]
aa

####统计A卷的得分###############
import pandas as pd
import numpy as np
data=pd.read_excel('D:/编程大赛A题.xls',header=0)

#或者可以选择路径(如下)
#data=pd.read_csv('D:/D/1.csv',header=0)
#data=pd.read_csv('C:/Users/fafa/1.csv',header=0)

#定义 得分 函数:
def score(a):
    s=0
    if a[3]=="C":  #第一列的正确答案
        s+=10        #第一列的分值
    if a[4]=="D":  #第二列的正确答案
        s+=10      #第二列的分值
    if a[5]=="C": #第三列的正确答案
        s+=10        #第三列的分值
    if a[6]=="B": #第四列的正确答案
        s+=10      #第四列的分值
    if a[7]=="A": #第五列的正确答案
        s+=10    #第五列的分值
    if len(str(a[8]).split(","))==5:  #填空题按照逗号分割后选择有5个元素的继续判断
        if str(a[8]).split(",")[0] in "流程线,起止框,输入输出框,判断框,处理框": #第五列的正确答案
            s+=10    #第五列的分值
        if str(a[8]).split(",")[1] in "流程线,起止框,输入输出框,判断框,处理框": #第五列的正确答案         
            s+=10    #第五列的分值
        if str(a[8]).split(",")[2] in "流程线,起止框,输入输出框,判断框,处理框": #第五列的正确答案         
            s+=10    #第五列的分值
        if str(a[8]).split(",")[3] in "流程线,起止框,输入输出框,判断框,处理框": #第五列的正确答案         
            s+=10    #第五列的分值
        if str(a[8]).split(",")[4] in "流程线,起止框,输入输出框,判断框,处理框": #第五列的正确答案         
            s+=10    #第五列的分值
    return s

#增加一列"得分"
data["得分"]=[score(data.iloc[i]) for i in range(len(data.index))]

#按照max得分统计队伍
data2=data.groupby(["队伍名称"],as_index=False)["得分"].max()
#按照sum得分统计队伍
#data2=data.groupby(["队伍"],as_index=False)["得分"].sum()

#按照 个数 统计 队伍
#data.groupby(["队伍"]).size()

#改名字
data3=data2.rename(columns={"队伍":"队伍名称","得分":"赛题A最终分数"})

#拍序(按照最终分数)
dataA=data3.sort_values(by="赛题A最终分数",ascending=False)
dataA
##########################################至此就结束了#########################################

####统计B卷的得分###############
import pandas as pd
import numpy as np
data=pd.read_excel('D:/编程大赛B题.xls',header=0)
#定义 得分 函数:
def score(a):
    s=0
    if a[3]=="x=input()\nx=int(x)\nif x>=60:\n    y=\"及格\"\nelse:\n    y=\"不及格\"\nprint(y)": #第一列的正确答案
        s+=50 #第一列的分值
    if a[4]=="x=input()\nx=int(x)\nif x>0:\n    y=\"正\"\nelse:\n    y=\"负\"\nprint(y)": #第二列的正确答案
        s+=50 #第二列的分值
    return s
#增加一列"得分"
data["得分"]=[score(data.iloc[i]) for i in range(len(data.index))]#按照max得分统计队伍
data2=data.groupby(["队伍名称"],as_index=False)["得分"].max()#按照sum得分统计队伍
#改名字
data3=data2.rename(columns={"队伍":"队伍名称","得分":"赛题B最终分数"})
#拍序(按照最终分数)
dataB=data3.sort_values(by="赛题B最终分数",ascending=False)
dataB
##############################################至此就结束############################################

#############后面的内容是如何关联多张成绩单,然后求和排名#########
#按照“”队伍名称”关联多个表格
dataD=pd.merge(dataA,dataB,on="队伍名称",how="outer")

#增加一列总分
dataD["总分"]=dataD.sum(axis=1)
#排序(按照最终分数)
dataD=dataD.sort_values(by="总分",ascending=False)
dataD

合并队伍,并选出该队队员最高分作为最终队伍成绩。

合并队伍,并选出该队队员最高分作为最终队伍成绩。


关联两个表格

关联两个表格

##################################################################################

###################以下内容就是其他的一些小技巧啦,和这个没有关系啦################

##############按列求和##########

data4.eval("总分 = 分数A+2*分数B",inplace=True)

#inplace参数表示是否在原数据上操作inplace=False将会生成新的DataFrame

#方法2

data4['总分'] = data4.apply(lambda x:x['分数A']+2*x['分数B'],axis=1)

data4

###################条件查询########

data4.query("分数A>1")

data4


If you are interested in this topic.
You can get in touch with me.
18234056952(Tel  wechat  qq)

相关文章

  • 自动判分系统

    #目标是按照队员最高分数计入为 队伍分数#首先是我们的数据集 来自腾讯微云#https://share.weiyu...

  • 智能阅卷在线题库考试系统

    一款支持智能阅卷、自动判分的在线题库考试系统,可以帮老师们节省很多的时间和精力。这种系统的强大判分功能,通常比人工...

  • 判分

    梳妆,换装,木兰亲手解开了自己的身份之谜; 墙上的字迹、瑶族老人、哈尼小姑娘,帮我们解开了“梨花”的秘密; 顺流而...

  • 自动化养鸡设备有什么优点?

    自动化养鸡设备主要是由笼养系统、自动化集蛋系统、自动化清粪系统、自动化供料设备、自动化照明系统、环境控制系统装置组...

  • 什么是区域火灾自动报警系统?与其他自动报警系统有什么区别?

    什么是区域火灾自动报警系统?与其他自动报警系统有什么区别? A:火灾自动报警系统主要分为区域报警系统、集中报警系统...

  • Mysql事务的自动提交与手动提交

    自动提交系统变量AUTOCOMMIT AUTOCOMMIT=ON|OFF系统变量控制自动提交功能的开启或关闭 自动...

  • springboot2.2.6.RELEASE chapter1

    系统启动后自动生成文件,系统停止后文件自动删除。

  • 只有爱存在 恐惧是幻象

    只有爱存在 恐惧是幻象 1、不去定义打标签 2、评判分析与逻辑思维的不同——评判分析(脱离全局观) 3、破幻象二元...

  • 得分,重要吗?

    《不厌书法》的判分不知是什么标准?我感觉其判分比较注重字的造型或形状,准确与否占的比重不小,要不然李瑞清先生的字得...

  • 基于YOLOv7的硬币真伪检测系统(源码&教程)

    1.研究背景 硬币自动分类技术在多种系统和设备中都起到了关键作用,例如:自动投币系统、自动售票系统等等。由于硬币各...

网友评论

    本文标题:自动判分系统

    本文链接:https://www.haomeiwen.com/subject/mywoiqtx.html