import numpy as np
import pandas as pd
np, pd
def printData(o):
oItems = dict(dtype=None,dtypes=None,shape=None,size=None,index=None,columns=None)
for (k,v) in oItems.items():
try:
oItems[k] = eval(f'o.{k}')
except (Exception, BaseException) as e:
pass
print(type(o), '\n', oItems)
rMin = 65
rChr = [chr(_) for _ in range(rMin, rMin+26)]
np.array(rChr)
+ 知识点概述
+ 数据转换
+ 体侧成绩评分表数据转换
+ 男生体侧成绩分数转换
+ 女生体侧成绩分数转换
+ 保存成绩
a01 = '我大学体能极限是1000米3分34秒'
a01.replace('我', '派')
a02 = "4'04"
float(a02.replace("'", '.'))
print('"', "'")
print('"\'', "\"'")
print(''''"''', """"'""")
print('\\', "\\", '''\_''', """\_""")
print(r'\_', '\_', r"\_", '\_')
a03 = ["4'03", "4'34", "4'29", "3'48", "3'58", 4]
b03 = [float(str(_).replace("'",'.')) for _ in a03]
np.array(b03)
np.array([float(_.replace("'",'.')) if isinstance(_, str) else _ for _ in a03])
path_01 = '体测成绩.xlsx'
xls_01_M = pd.read_excel(path_01, sheet_name='男生')
xls_01_F = pd.read_excel(path_01, sheet_name='女生')
+ 里面有空数据,说明这名学生没有参加这项体侧,将空数据填充为0
+ 1000米跑的数据需要转换,将4'13(字符串)转为 4.13(浮点数)
display(xls_01_M)
xls_01_F
xls_01_M = xls_01_M.fillna(0)
display(xls_01_M)
xls_01_F = xls_01_F.fillna(0)
xls_01_F
def func01(x):
return float(str(x).replace("'", '.'))
xls_01_M['男1000米跑'] = xls_01_M['男1000米跑'].map(func01)
xls_01_F['女800米跑'] = xls_01_F['女800米跑'].map(func01)
xls_01_M['男1000米跑']
xls_01_F['女800米跑']
old_path = path_01.split('.')
new_path = old_path[0] + '-结果1.' + old_path[1]
with pd.ExcelWriter(new_path) as w:
xls_01_M.to_excel(w, sheet_name='男生', index=False)
xls_01_F.to_excel(w, sheet_name='女生', index=False)
xls_01_M.to_excel(old_path[0] + '-男生结果1.' + old_path[1], sheet_name='男生', index=False)
xls_01_F.to_excel(old_path[0] + '-女生结果1.' + old_path[1], sheet_name='女生', index=False)
path_02 = '体侧成绩评分表.xls'
xls_02 = pd.read_excel(path_02, header=[0,1])
xls_02 = xls_02.fillna(0)
xls_02
def func02(x):
m,s = [int(_) for _ in str(x).strip('"').split("'")]
return m + s/100
xls_02['男1000米跑']['成绩']
xls_02['女800米跑']['成绩']
xls_02.columns
isinstance()
xls_02['男1000米跑']['成绩']
(先发,占位)