2020年第十五届竞赛数据上报竞赛数据给高等教学学会统计
2023-09-11 14:15:18 时间
▌01 相关的通知
▌02 信息处理
1.原始资料文件
-
资料所在目录:
-
E:\SmartCar\2020比赛\Document\HighEducation\Division Result
E:\SmartCar\2020比赛\Document\HighEducation\Final Result
E:\SmartCar\2020比赛\Document\HighEducation\输出表格-高教学会 : 包括有:竞赛报名模板、竞赛结果模板两个文件。
E:\SmartCar\2020比赛\Document\HighEducation\用户参赛信息表20201124.xlsx
总决赛获奖信息:
-
D:\Temp\Final Result\Excel\安徽.xls
D:\Temp\Final Result\Excel\创意.xls
D:\Temp\Final Result\Excel\东北.xls
D:\Temp\Final Result\Excel\华北.xls
D:\Temp\Final Result\Excel\华东.xls
D:\Temp\Final Result\Excel\华南.xlsx
D:\Temp\Final Result\Excel\山东.xls
D:\Temp\Final Result\Excel\西部.xls
D:\Temp\Final Result\Excel\浙江.xlsx
2.竞赛结果表格
-
(1)填表说明:
-
1.、奖项各竞赛自行设定,可含单项奖或专项奖。
2.、组织奖、优秀指导教师奖等可另行设定。
3.、组别:指研究生、本科、高职高专、中职、教师。
4、类别:有些竞赛有分类,如:广告设计竞赛的平面类、动画类等。
5、部分竞赛有作品编号、作品名称
(2)EXCEL表格栏目:
-
A. 作品编号; B. 作品名称; C. 学校名称; D. 学生1姓名; E. 学生2姓名
F. 学生3姓名; G. 学生4姓名; H. 学生5姓名; I. 学生6姓名; J. 学生7姓名
K. 学生8姓名; L. 队名; M. 专业名称; N. 学院名称; O. 指导老师1;
P. 指导老师2; Q. 奖项名称; R. 竞赛组别; S. 竞赛类别; T. 备注
3.总决赛表格→竞赛结果
(1) 编程分析
总决赛获奖信息表格结构如下:
▲ 总决赛表格结构
按照以下结构将总决赛获奖信息转换成“竞赛结果表格”
No | 总决赛表格 | 竞赛结果表格 | 备注 |
---|---|---|---|
1 | 学校名称 | N.学院名称 | |
2 | 队伍名称 | L.队名 | |
3 | 组别 | B.竞赛类别 | |
4 | 奖项 | Q.奖项名称 | 全国总决赛+奖项 |
5 | 指导教师1 | O.指导教师1 | |
6 | 指导教师2 | P.指导教师2 | |
7 | 学生n | 学生n姓名 | n=1,2,3,4,5 |
(2) 生成程序
参见附件中的“1 .生成全国总决赛结果”。
4.用户参赛信息表格→竞赛报名模板
-
报名模板:
-
1.参赛作品 2.参赛人 3.手机号 4.学号
5.身份证号 6.学校名称 7.学院名称 8.指导老师
9.队名 10.专业名称 11.入学年份 12.学生类别
13.竞赛类别 14.竞赛组别
参赛用户信息:
-
1.学生姓名 2.学生系别 3.学生学号 4.学生班级 5.学生年龄
6.学生专业 7.学生电话 8.学生邮箱 9.队伍名称 10.赛区
11.省市 12.学校 13.组别 14.教师姓名1 15.教师性别1
16.教师系别1 17.教师职称1 18.教师电话1 19.教师邮箱1 20.教师通讯地址1
21.教师姓名2 22.教师性别2 23.教师系别2 24.教师职称2 25.教师电话2
26.教师邮箱2 27.教师通讯地址2 28.教师姓名3 29.教师性别3 30.教师系别3
31.教师职称3 32.教师电话3 33.教师邮箱3 34.教师通讯地址3 35.教师姓名4
36.教师性别4 37.教师系别4 38.教师职称4 39.教师电话4 40.教师邮箱4
41.教师通讯地址4
按照以下映射进行转换:
No | 参赛用于信息 | 竞赛报名表格 | 备注 |
---|---|---|---|
1 | 学生姓名 | 参赛人 | |
2 | 学生学号 | 学号 | |
3 | 学生专业 | 专业名称 | |
4 | 学校 | 学校名称 | |
5 | 组别 | 竞赛组别 | →参赛作品 |
6 | 教师姓名1 | 指导教师 | |
7 | 队伍名称 | 队名 | |
8 | 学生电话 | 手机号 | |
9 | 学生年龄 | 入学年份 | 年龄+n |
10 | 赛区 | 竞赛类别 |
▲ 全国高校大学生竞赛质量提升工作推进会
▌附件:
1.生成全国总决赛结果
#!/usr/local/bin/python
# -*- coding: gbk -*-
#============================================================
# EXCELSUB.PY -- by Dr. ZhuoQing 2021-01-14
#
# Note:
#============================================================
from head import *
import pandas as pd
#------------------------------------------------------------
teamfile = r'D:\Temp\输出表格-高教学会\竞赛报名模板.xlsx'
resultfile = r'D:\Temp\输出表格-高教学会\竞赛结果模版.xlsx'
finalresult = ('安徽', '山东', '浙江', '东北',
'华北', '华东', '华南', '西部', '创意')
finaldir = r'D:\Temp\Final Result\Excel'
divisiondir = r'D:\Temp\Division Result'
division = ('安徽', '山东', '浙江', '东北',
'华北', '华东', '华南', '西部', '创意')
divisionresult = r'D:\Temp\输出表格-高教学会\竞赛结果模版 - 分赛区成绩.xlsx'
totalappendnum = 0
#------------------------------------------------------------
teamorigin = r'D:\Temp\用户参赛信息表20201124.xlsx'
#------------------------------------------------------------
def showexcel(filename):
excelfile = pd.read_excel(filename)
printf([id for id,c in excelfile.items()])
listvalue = excelfile.values.tolist()
for id,l in enumerate(listvalue):
printff(id, l)
#------------------------------------------------------------
def clearexcel(filename):
excelfile = pd.read_excel(filename)
excelfile = excelfile[0:0]
excelfile.to_excel(filename, sheet_name='Sheet1', index=False)
#------------------------------------------------------------
def appendexcel(filename, dict):
excelfile = pd.read_excel(filename)
row = len(list(excelfile.items())[0][1])
#--------------------------------------------------------
for col in dict:
excelfile[col] = excelfile[col].astype(str)
excelfile.at[row, col] = dict[col]
#--------------------------------------------------------
excelfile.to_excel(filename, sheet_name='Sheet1', index=False)
#------------------------------------------------------------
def appendexcellist(filename, dictlist):
excelfile = pd.read_excel(filename)
rowoffset = len(list(excelfile.items())[0][1])
#--------------------------------------------------------
for id,dict in enumerate(dictlist):
row = id + rowoffset
for col in dict:
excelfile[col] = excelfile[col].astype(str)
excelfile.at[row, col] = dict[col]
if id % 500 == 0:
printf("Append excel %d/%d"%(id, len(dictlist)))
#--------------------------------------------------------
excelfile.to_excel(filename, sheet_name='Sheet1', index=False)
#------------------------------------------------------------
def isname(string):
if type(string) != str: return False
if len(string) < 2: return False
if string == 'nan': return False
if string == '-': return False
return True
#------------------------------------------------------------
def appendfile2result(fname):
f1 = fname + '.xls'
f2 = fname + '.xlsx'
filename = f1
if not os.path.isfile(filename):
filename = f2
if not os.path.isfile(filename):
printf('ERROR: %s does not exist!'%fname)
return
#--------------------------------------------------------
excelfile = pd.read_excel(filename)
rownum = len(list(excelfile.items())[0][1])
for row in range(rownum):
school = excelfile.at[row, '学校名称']
if type(school) != str: continue
if len(school) == 0: continue
adddict = {}
adddict['学院名称'] = school
adddict['队名'] = excelfile.at[row, '队伍名称']
adddict['竞赛类别'] = excelfile.at[row, '组别']
adddict['奖项名称'] = '全国总决' + excelfile.at[row, '奖项']
for i in range(2):
name = excelfile.at[row, '指导教师%d'%(i+1)]
if isname(name):
adddict['指导老师%d'%(i+1)] = name
for i in range(5):
name = excelfile.at[row, '学生%d'%(i+1)]
if isname(name):
adddict['学生%d姓名'%(i+1)] = name
showstr = str(adddict).replace('\u4dae', '')
printf(showstr)
#----------------------------------------------------
global totalappendnum
totalappendnum += 1
adddict['作品编号'] = '%04d'%totalappendnum
appendexcel(resultfile, adddict)
#------------------------------------------------------------
def teamorigin2file(filename):
if not os.path.isfile(filename):
printf('ERROR: %s does not exist!'%fname)
return
#--------------------------------------------------------
excelfile = pd.read_excel(filename)
rownum = len(list(excelfile.items())[0][1])
group2group = {
'学生姓名' : '参赛人',
'学生学号' : '学号',
'学生专业' : '专业名称',
'学校' : '学校名称',
'组别' : '竞赛组别',
'教师姓名1' : '指导老师',
'队伍名称' : '队名',
'学生电话' : '手机号',
'学生年龄' : '入学年份',
'赛区' : '竞赛类别'
}
adddictlist = []
printf("Begin to generate add diction:")
for row in range(rownum):
adddict = {}
for gg in group2group:
adddict[group2group[gg]] = excelfile.at[row, gg]
adddict['参赛作品'] = excelfile.at[row, '组别']
adddictlist.append(adddict)
if row % 1000 == 0:
printff('Add dict: %d/%d'%(row, rownum))
printf("Begin to add to excel:")
appendexcellist(teamfile, adddictlist)
#------------------------------------------------------------
def division2result(outfile, divisionlist):
dictlist = []
for dl in divisionlist:
dlfile = os.path.join(divisiondir, '2020%s奖项.xlsx'%dl)
if not os.path.isfile(dlfile):
dlfile = os.path.join(divisiondir, '2020%s奖项.xls'%dl)
if not os.path.isfile(dlfile):
printf("Can not file the file :%s"%dlfile)
continue
printf("Load file :%s"%dlfile)
excelfile = pd.read_excel(dlfile)
rownum = len(list(excelfile.items())[0][1])
for row in range(rownum):
school = excelfile.at[row, '学校名称']
if type(school) != str: continue
if len(school) == 0: continue
adddict = {}
adddict['学院名称'] = school
adddict['队名'] = excelfile.at[row, '队伍名称']
adddict['竞赛类别'] = excelfile.at[row, '组别']
adddict['奖项名称'] = '分赛区' + str(excelfile.at[row, '奖项'])
for i in range(2):
name = excelfile.at[row, '指导教师%d'%(i+1)]
if isname(name):
adddict['指导老师%d'%(i+1)] = name
for i in range(5):
name = excelfile.at[row, '学生%d'%(i+1)]
if isname(name):
adddict['学生%d姓名'%(i+1)] = name
dictlist.append(adddict)
#--------------------------------------------------------
appendexcellist(outfile, dictlist)
#------------------------------------------------------------
if __name__ == "__main__":
#--------------------------------------------------------
printf("Clear division result.")
clearexcel(divisionresult)
division2result(divisionresult, division)
#--------------------------------------------------------
'''
printf("Clear origin file.")
clearexcel(teamfile)
teamorigin2file(teamorigin)
'''
#--------------------------------------------------------
'''
clearexcel(resultfile)
for ff in finalresult:
fname = os.path.join(finaldir, ff)
printf(fname)
appendfile2result(fname)
'''
#--------------------------------------------------------
#--------------------------------------------------------
printf('\a')
#------------------------------------------------------------
# END OF FILE : EXCELSUB.PY
#============================================================
相关文章
- js统计字符串个数
- redis 数据统计(用自增id防止同一秒并发过大没统计成功)
- MySQL 统计过去12个月的数据(包括本月)
- ASP.NET实现一个在线音乐统计网站(歌手,音乐,角色……增删改查)
- Java实现 蓝桥杯VIP 算法提高 不同单词个数统计
- 研究人员用数据统计的方法来做文学研究
- 统计之 - 协方差_数据分析师
- 【刷题】面筋-linux统计文件中字符串次数及文件夹下特定类型文件个数
- mysql 统计当天,本周,本月,上一月的数据
- 莽荒纪人物出场数据统计
- 还在用SELECT COUNT统计数据库表的行数?Out了
- 【BZOJ 1036】[ZJOI2008]树的统计Count
- 【t055】成绩统计
- NLP:自然语言处理技术领域的代表性算法概述(技术迭代路线图/发展时间路线)、四大技术范式变迁概述(统计时代→大模型时代)、四个时代的技术方法论探究(少数公司可承担的训练成本原因)之详细攻略
- 语音数据集中label的词频统计
- 数学建模学习(4):数据统计与分析之假设检验
- 数据库性能调优之始: analyze统计信息
- 1254. 统计封闭岛屿的数目
- jsp统计页面访问量和刷访问量的简单使用
- 第一周:数据的描述性统计
- laravel withCount 统计关联数量
- 刷题记录:牛客NC20573[ZJOI2008]树的统计COUNT
- 网站统计51LA数据引用功能详解及添加方法
- arthas使用示例:trace追踪方法调用路径及统计方法耗时