其他分享
首页 > 其他分享> > 整理第十六届全国大学智能车竞赛比赛数据

整理第十六届全国大学智能车竞赛比赛数据

作者:互联网

简 介: 整理提交了第十六届全国大学生智能车总决赛的数据。

关键词 智能车竞赛总决赛

数据格式转换 文章目录 格式要求 数据来源 表格种类 数据文件整理 整理方案 整理过程 总 结

 

§01 据格式转换


1.1 格式要求

  根据中国高等教育学会统计2021年全国大学生课外科技活动要求,上载比赛的EXCEL表格为:

【表1-1 上载EXCEL表格格式】

作品编号作品名称学校名称学生1姓名学生2姓名学生3姓名学生4姓名学生5姓名学生6姓名学生7姓名学生8姓名队名专业名称学院名称指导老师1指导老师2奖项名称竞赛组别竞赛类别备注

1.1.1 填表说明

  1. 奖项各竞赛自行设定,可含单项奖或专项奖。
  2. 组织奖、优秀指导教师奖等可另行设定。
  3. 组别:指研究生、本科、高职高专、中职、教师。
  4. 类别:有些竞赛有分类,如:广告设计竞赛的平面类、动画类等。
  5. 部分竞赛有作品编号、作品名称名称,如挑战杯等。
  6. 学校名称、奖项为必填项。可添加多个学生、指导老师单元格,但请不要破坏上方表格。
  7. 如果团队中学院和专业每个人不同,以领队为准,如果没有领队以多数的学院为准

1.2 数据来源

比赛竞赛组别竞赛类别奖项名称学校名称队伍名称学生指导教师
分赛区竞速比赛八个竞速组别分赛区比赛
分赛区创意比赛三个创意组比赛分赛区比赛
全国竞速总决赛八个竞速组别全国总决赛
全国创意总决赛三个创意组比赛全国总决赛
RT-Thread创新组一个组别创新组比赛

1.2.1 数据项填充转换

  提交的竞赛数据表格,并不是所有的表格项在智能车竞赛报名表格中都有,下面是对于提交数据表格项进行数据定义。

数据项转换:
作品编号:对于一张表格排序从1到N
作品名称:智能车模
学校名称:参赛队伍报名学校
学生名称:学生名称 1 ~ 5人
队伍名称:队伍名称
专业名称:NULL
学院名称:NULL
指导教师:指导教师1 ~ 2 人
奖项名称:一等奖 ~ 三等奖
竞赛组别:竞速八个组别,创意三个组别,RT-Thread创新将
竞赛类别:分赛区比赛,全国总决赛
备注:NULL

1.3 表格种类

  总共生成以下五张表格:

 

§02 据文件整理


2.1 整理方案

  整理过程分为两个步骤:

2.2 整理过程

2.2.1 整理所在目录

  整理数据所在目录: H:\SmartCar\2021\Awards

  目录的格式:

├─RT-Thread专项奖
├─全国总决赛
├─分赛区比赛
│  ├─东北
│  ├─华东
│  ├─华北
│  ├─华南
│  ├─安徽
│  ├─山东
│  ├─广东
│  ├─浙江
│  └─西部
├─创意组-分赛区
├─创意组全国总决赛
└─数据整理过程

2.2.2 整理文件过程

(1)数据预处理

#!/usr/local/bin/python
# -*- coding: gbk -*-
#============================================================
# PROCAWARD.PY                 -- by Dr. ZhuoQing 2021-12-25
#
# Note:
#============================================================

from headm import *                 # =

#------------------------------------------------------------

awardname = {1:'Ò»µÈ½±', 2:'¶þµÈ½±', 3:'ÈýµÈ½±', 4:'ÓÅʤ½±', 5:'´´Ð½±'}
levelname = {'È«¹ú×ܾöÈü':'all', '·ÖÈüÇø±ÈÈü':'division',
             '°²»ÕÈüÇø':'anhui', 'ɽ¶«ÈüÇø':'shandong', 'Õã½­ÈüÇø':'zhejiang',
             '¹ã¶«ÈüÇø':'guangdong', '¶«±±ÈüÇø':'dongbei',
             '»ª±±ÈüÇø':'huabei', '»ª¶«ÈüÇø':'huadong',
             '»ªÄÏÈüÇø':'huanan', 'Î÷²¿ÈüÇø':'xibu'}

groupname = {'½ÚÄÜÐűê×é':'energe',
             '»ù´¡ËÄÂÖ×é':'wheel4',
             'µ¥³µÀ­Á¦×é':'bicycle',
             'Ë«³µ½ÓÁ¦×é':'relay',
             'ÖÇÄÜÊÓ¾õ×é':'aivision',
             'ר¿Æ»ù´¡×é':'basic',
             'È«ÏòÐнø×é':'mecanum',
             'µç´ÅÔ½Ò°×é':'crosscountry',
             'Öǻ۽»Í¨' : 'traffic',
             'Öǻ۲ÍÌü' : 'canteen',
             'ÖÇ»ÛÎïÁ÷' : 'logistrics'}

#------------------------------------------------------------
level = '°²»ÕÈüÇø'
group = 'ר¿Æ»ù´¡×é'

stringid = 45

#------------------------------------------------------------
_ = tspgetdopstring(-stringid)
alllines = [l for l in clipboard.paste().split('\r\n') if len(l.replace('\t', '')) > 0]
printf(alllines)

#------------------------------------------------------------
'''
for l in alllines:
    printt(l.split('\t'))
'''
#------------------------------------------------------------

data = []
for l in alllines[1:]:
    l = l.split('\t')
    if len(l) < 10:
        award = l[-2]
        if award.find('Ò»') >= 0: award = 'Ò»µÈ½±'
        elif award.find('¶þ') >= 0: award = '¶þµÈ½±'
        elif award.find('Èý') >= 0: award = 'ÈýµÈ½±'
        else: award = 'ÓÅʤ½±'

        university = l[1]
        team = l[2]
        teachers = ','.join(('',''))
        students = ','.join(('','',''))
        item = (level, award, group, university, team, teachers, students)
    else:
        award = l[-1]
        university = l[1]
        team = l[2]
        teachers = ','.join((l[4],l[5]))
        students = ','.join((l[6],l[7],l[8]))
        item = (level, award, group, university, team, teachers, students)


    printt(item:)
    data.append(item)

#    break

npzname = "%s%s"%(levelname[level], groupname[group])
tspsave(npzname, data=data)
#------------------------------------------------------------
time.sleep(.1)
data = tspload(npzname, 'data')
printt(data:)

#------------------------------------------------------------
#        END OF FILE : PROCAWARD.PY
#============================================================

(2)数据合成

#!/usr/local/bin/python
# -*- coding: gbk -*-
#============================================================
# ALLMERGE.PY                  -- by Dr. ZhuoQing 2021-12-25
#
# Note:
#============================================================

from headm import *                 # =

data0 = tspload('anhuiwheel4', 'data')
data1 = tspload('anhuirelay', 'data')
data2 = tspload('anhuimecanum', 'data')
data3 = tspload('anhuienerge', 'data')
data4 = tspload('anhuicrosscountry', 'data')
data5 = tspload('anhuibicycle', 'data')
data6 = tspload('anhuiaivision', 'data')
data7 = tspload('anhuibasic', 'data')


#------------------------------------------------------------
alldata = []
dataall = [data0,data1,data2,data3,data4,data5,data6,data7]

for d in dataall:
    for item in d:
        alldata.append(item)

#------------------------------------------------------------
awardname = {1:'Ò»µÈ½±', 2:'¶þµÈ½±', 3:'ÈýµÈ½±', 4:'ÓÅʤ½±', 5:'´´Ð½±'}

#------------------------------------------------------------
def award2index(asd):
    try:
        return list(awardname.values()).index(asd)
    except:
        return 99

sortdata = sorted(alldata, key=lambda x:award2index(x[1]))

#------------------------------------------------------------
tabletext = '×÷Æ·±àºÅ    ×÷Æ·Ãû³Æ    ѧУÃû³Æ    ѧÉú1ÐÕÃû    ѧÉú2ÐÕÃû    ѧÉú3ÐÕÃû    ѧÉú4ÐÕÃû    ѧÉú5ÐÕÃû    ѧÉú6ÐÕÃû    ѧÉú7ÐÕÃû    ѧÉú8ÐÕÃû    ¶ÓÃû    רҵÃû³Æ    ѧԺÃû³Æ    Ö¸µ¼ÀÏʦ1    Ö¸µ¼ÀÏʦ2    ½±ÏîÃû³Æ    ¾ºÈü×é±ð    ¾ºÈüÀà±ð    ±¸×¢'.split()

#------------------------------------------------------------
def title2id(t):
    try:
        return tabletext.index(t)
    except:
        return len(tabletext) - 1

printt(title2id('×÷Æ·±àºÅ'))

#------------------------------------------------------------
def item2table(item, id):
    tdim = ['']*len(tabletext)


    tdim[title2id('×÷Æ·±àºÅ')] = str(id)
    tdim[title2id('×÷Æ·Ãû³Æ')] = '¾ºËÙÖÇÄܳµ'
    tdim[title2id('¾ºÈü×é±ð')] = item[2]
    tdim[title2id('¾ºÈüÀà±ð')] = item[0]
    tdim[title2id('½±ÏîÃû³Æ')] = item[1]
    tdim[title2id('ѧУÃû³Æ')] = item[3]
    tdim[title2id('¶ÓÃû')] = item[4]

    teachers = item[5].split(',')
    for id,t in enumerate(teachers):
        title = 'Ö¸µ¼ÀÏʦ%d'%(id+1)
        tdim[title2id(title)] = t

    students = item[6].split(',')
    for id,s in enumerate(students):
        title = 'ѧÉú%dÐÕÃû'%(id+1)
        tdim[title2id(title)] = s

    return tdim

printt(item2table(sortdata[0], 0))

#------------------------------------------------------------

filename = r'd:\temp\alltxt.txt'
with open(filename, 'w') as f:
    for id,d in enumerate(sortdata):
        dtxt = '\t'.join(item2table(d, id+1))
#        printf(dtxt)

        _ = f.write(dtxt+'\n')
#        break

printf("Save all data into %s.\a"%filename)

#------------------------------------------------------------
#        END OF FILE : ALLMERGE.PY
#============================================================
#!/usr/local/bin/python
# -*- coding: gbk -*-
#============================================================
# PROCAWARD.PY                 -- by Dr. ZhuoQing 2021-12-25
#
# Note:
#============================================================

from headm import *                 # =

#------------------------------------------------------------

awardname = {1:'一等奖', 2:'二等奖', 3:'三等奖', 4:'优胜奖', 5:'创新奖'}
levelname = {'全国总决赛':'all', '分赛区比赛':'division',
             '安徽赛区':'anhui', '山东赛区':'shandong', '浙江赛区':'zhejiang',
             '广东赛区':'guangdong', '东北赛区':'dongbei',
             '华北赛区':'huabei', '华东赛区':'huadong',
             '华南赛区':'huanan', '西部赛区':'xibu'}

groupname = {'节能信标组':'energe',
             '基础四轮组':'wheel4',
             '单车拉力组':'bicycle',
             '双车接力组':'relay',
             '智能视觉组':'aivision',
             '专科基础组':'basic',
             '全向行进组':'mecanum',
             '电磁越野组':'crosscountry',
             '智慧交通' : 'traffic',
             '智慧餐厅' : 'canteen',
             '智慧物流' : 'logistrics'}

#------------------------------------------------------------
level = '安徽赛区'
group = '专科基础组'

stringid = 45

#------------------------------------------------------------
_ = tspgetdopstring(-stringid)
alllines = [l for l in clipboard.paste().split('\r\n') if len(l.replace('\t', '')) > 0]
printf(alllines)

#------------------------------------------------------------
'''
for l in alllines:
    printt(l.split('\t'))
'''
#------------------------------------------------------------

data = []
for l in alllines[1:]:
    l = l.split('\t')
    if len(l) < 10:
        award = l[-2]
        if award.find('一') >= 0: award = '一等奖'
        elif award.find('二') >= 0: award = '二等奖'
        elif award.find('三') >= 0: award = '三等奖'
        else: award = '优胜奖'

        university = l[1]
        team = l[2]
        teachers = ','.join(('',''))
        students = ','.join(('','',''))
        item = (level, award, group, university, team, teachers, students)
    else:
        award = l[-1]
        university = l[1]
        team = l[2]
        teachers = ','.join((l[4],l[5]))
        students = ','.join((l[6],l[7],l[8]))
        item = (level, award, group, university, team, teachers, students)


    printt(item:)
    data.append(item)

#    break

npzname = "%s%s"%(levelname[level], groupname[group])
tspsave(npzname, data=data)
#------------------------------------------------------------
time.sleep(.1)
data = tspload(npzname, 'data')
printt(data:)

#------------------------------------------------------------
#        END OF FILE : PROCAWARD.PY
#============================================================
#!/usr/local/bin/python
# -*- coding: gbk -*-
#============================================================
# ALLMERGE.PY                  -- by Dr. ZhuoQing 2021-12-25
#
# Note:
#============================================================

from headm import *                 # =

data0 = tspload('anhuiwheel4', 'data')
data1 = tspload('anhuirelay', 'data')
data2 = tspload('anhuimecanum', 'data')
data3 = tspload('anhuienerge', 'data')
data4 = tspload('anhuicrosscountry', 'data')
data5 = tspload('anhuibicycle', 'data')
data6 = tspload('anhuiaivision', 'data')
data7 = tspload('anhuibasic', 'data')


#------------------------------------------------------------
alldata = []
dataall = [data0,data1,data2,data3,data4,data5,data6,data7]

for d in dataall:
    for item in d:
        alldata.append(item)

#------------------------------------------------------------
awardname = {1:'一等奖', 2:'二等奖', 3:'三等奖', 4:'优胜奖', 5:'创新奖'}

#------------------------------------------------------------
def award2index(asd):
    try:
        return list(awardname.values()).index(asd)
    except:
        return 99

sortdata = sorted(alldata, key=lambda x:award2index(x[1]))

#------------------------------------------------------------
tabletext = '作品编号    作品名称    学校名称    学生1姓名    学生2姓名    学生3姓名    学生4姓名    学生5姓名    学生6姓名    学生7姓名    学生8姓名    队名    专业名称    学院名称    指导老师1    指导老师2    奖项名称    竞赛组别    竞赛类别    备注'.split()

#------------------------------------------------------------
def title2id(t):
    try:
        return tabletext.index(t)
    except:
        return len(tabletext) - 1

printt(title2id('作品编号'))

#------------------------------------------------------------
def item2table(item, id):
    tdim = ['']*len(tabletext)


    tdim[title2id('作品编号')] = str(id)
    tdim[title2id('作品名称')] = '竞速智能车'
    tdim[title2id('竞赛组别')] = item[2]
    tdim[title2id('竞赛类别')] = item[0]
    tdim[title2id('奖项名称')] = item[1]
    tdim[title2id('学校名称')] = item[3]
    tdim[title2id('队名')] = item[4]

    teachers = item[5].split(',')
    for id,t in enumerate(teachers):
        title = '指导老师%d'%(id+1)
        tdim[title2id(title)] = t

    students = item[6].split(',')
    for id,s in enumerate(students):
        title = '学生%d姓名'%(id+1)
        tdim[title2id(title)] = s

    return tdim

printt(item2table(sortdata[0], 0))

#------------------------------------------------------------

filename = r'd:\temp\alltxt.txt'
with open(filename, 'w') as f:
    for id,d in enumerate(sortdata):
        dtxt = '\t'.join(item2table(d, id+1))
#        printf(dtxt)

        _ = f.write(dtxt+'\n')
#        break

printf("Save all data into %s.\a"%filename)







#------------------------------------------------------------
#        END OF FILE : ALLMERGE.PY
#============================================================

 

  结 ※


  理提交了第十六届全国大学生智能车总决赛的数据。


● 相关图表链接:

标签:#------------------------------------------------------------,竞赛,item,第十六届,tdim,
来源: https://blog.csdn.net/zhuoqingjoking97298/article/details/122139579