整理第十六届全国大学智能车竞赛比赛数据
作者:互联网
简 介: 整理提交了第十六届全国大学生智能车总决赛的数据。
关键词
: 智能车竞赛,总决赛
§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