ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

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

2021-12-25 13:58:01  阅读:163  来源: 互联网

标签:#------------------------------------------------------------ 竞赛 item 第十六届 tdim 


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

关键词 智能车竞赛总决赛

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

 

§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 表格种类

  总共生成以下五张表格:

  • 全国总决赛竞速组别:包括八个竞速比赛的奖项,一等奖,二等奖
  • 全国总决赛创意组别:包括三个组别;一等奖,二等奖,三等奖;
  • 分赛区比赛竞速组别:包括八个竞速组别奖项:一等奖,二等奖,三等奖,优胜奖
  • 分赛区比赛创意组别:包括三个组别:一等奖,二等奖,三等奖;
  • RT-Thread创新组别:一个组别

 

§02 据文件整理


2.1 整理方案

  整理过程分为两个步骤:

  • 第一步: 将原始的EXCEL表格整理成中间格式:
    • 文件格式:TXT文件;
    • 每一行定义: 分赛区/总决赛、奖项、组别、学校、队伍、指导教师(2)、学生(5)
    • 文件个数:五类,按照【1.3:表格种类】定义。
  • 第二步: 将中间文件生成最终提交格式文件。
    • 对于中间文件按照奖项进行排序;
    • 生成最终提交EXCEL表格文本文件;

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

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有