#体测成绩自动化打分
import numpy as np
import pandas as pd
import os
os.chdir('C:\\Users\\Administrator\\Desktop\\体育评分\\')
records = pd.read_excel('体育测试成绩.xlsx',sheet_name='测试成绩表')
#先判断是否空值isnull();再求均值,即求每一列的True的均值mean()
#Fasle 0; True 1;
records.isnull().mean()
records = records.fillna(0)
#读取打分标准表(体测评分标准)
score_table = pd.read_excel('评分标准.xlsx',sheet_name='评分标准',header=[0,1],index_col=[0])
#header=[0,1] 将前两行进行固定 ;index_col=[0]将第一行进行 行索引
score_table.head()
#提取1000米成绩,1000米打分
m_1000 = score_table['1000/800米']
def calculate(x):
if x == 0:
return 0
select = x <= m_1000['男']
if select.sum() <= 0:
return 0
return m_1000.loc[select,'得分'].iloc[0]
records['1000/800米分数'] = records['1000/800米'].map(calculate)
学生测试成绩表
学生体育评分标准
求大侠跟据以上2图,修改代码,实现全部成绩转换。