import numpy as np
import pandas as pd
from pandas import Series,DataFrame
import matplotlib.pyplot as plt
%matplotlib inline
data = pd.read_excel('18級高一體測成績彙總.xls')
data
班級 | 性別 | 姓名 | 1000米 | 50米 | 跳遠 | 體前屈 | 引體 | 肺活量 | 身高 | 體重 | BMI | |
---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 1 | 男 | 高孜陽0611 | 4'13 | 8.88 | 195 | 12 | 1 | 2785 | 170 | 72.6 | NaN |
1 | 1 | 男 | 郝少傑1013 | 4'16 | 7.70 | 225 | 11 | 7 | 3133 | 174 | 52.7 | NaN |
2 | 1 | 男 | 郝梓燁0619 | 4'09 | 8.45 | 218 | 14 | 1 | 3901 | 169 | 46.5 | NaN |
3 | 1 | 男 | 何弘源1010 | 4'21 | 8.05 | 206 | 13 | 1 | 4946 | 183 | 79.7 | NaN |
4 | 1 | 男 | 劉碩鵬1212 | 3'44 | 7.52 | 210 | 13 | 9 | 3538 | 171 | 54.7 | NaN |
... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
488 | 17 | 男 | 張喬楠0311 | 4'23 | 8.27 | 208 | 10 | 0 | 4647 | 176 | 69.5 | NaN |
489 | 17 | 男 | 郭澤森0333 | 5'19 | 9.55 | 210 | 15 | 6 | 7042 | 177 | 76 | NaN |
490 | 17 | 男 | 陳子龍061X | 3'25 | 7.5 | 252 | 13 | 13 | 5755 | 181 | 65 | NaN |
491 | 17 | 男 | 王丹龍0636 | 4'39 | 7.81 | 208 | 14 | 11 | 5688 | 172 | 51.7 | NaN |
492 | 17 | 男 | 王玉涵0636 | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN |
# 清洗數據
cond = data['班級'] != '班級' # 把有班級那一行的數據給刪除
data = data[cond] # 獲得新的數據
data[:45]
班級 | 性別 | 姓名 | 1000米 | 50米 | 跳遠 | 體前屈 | 引體 | 肺活量 | 身高 | 體重 | BMI | |
---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 1 | 男 | 高孜陽0611 | 4'13 | 8.88 | 195 | 12 | 1 | 2785 | 170 | 72.6 | NaN |
1 | 1 | 男 | 郝少傑1013 | 4'16 | 7.70 | 225 | 11 | 7 | 3133 | 174 | 52.7 | NaN |
2 | 1 | 男 | 郝梓燁0619 | 4'09 | 8.45 | 218 | 14 | 1 | 3901 | 169 | 46.5 | NaN |
3 | 1 | 男 | 何弘源1010 | 4'21 | 8.05 | 206 | 13 | 1 | 4946 | 183 | 79.7 | NaN |
4 | 1 | 男 | 劉碩鵬1212 | 3'44 | 7.52 | 210 | 13 | 9 | 3538 | 171 | 54.7 | NaN |
5 | 1 | 男 | 劉運碩0314 | 3'49 | 7.94 | 190 | 20 | 7 | 3970 | 175 | 66.4 | NaN |
6 | 1 | 男 | 呂曉瑤0314 | 3'54 | 7.75 | 186 | 11 | 7 | 3710 | 173 | 53.9 | NaN |
7 | 1 | 男 | 米孜聰0636 | 4'3 | 8.06 | 195 | 3 | 1 | 5578 | 178 | 83.1 | NaN |
8 | 1 | 男 | 聶浩然2719 | 4'01 | 7.75 | 220 | 15 | 10 | 3821 | 175 | 66.5 | NaN |
9 | 1 | 男 | 牛苗嘉1211 | 4'12 | 7.38 | 245 | 17 | 11 | 4423 | 167 | 53.9 | NaN |
10 | 1 | 男 | 牛硯哲2813 | 4 | 7.82 | 219 | 13 | 11 | 4031 | 173 | 57.4 | NaN |
11 | 1 | 男 | 齊子涵185x | 4'13 | 7.37 | 228 | 9 | 15 | 4354 | 163 | 54.6 | NaN |
12 | 1 | 男 | 喬一甲0616 | 3'45 | 7.66 | 202 | 7 | 3 | 2238 | 179 | 61.1 | NaN |
13 | 1 | 男 | 任曉波0311 | 3'46 | 7.66 | 245 | 3 | 7 | 4811 | 177 | 63.9 | NaN |
14 | 1 | 男 | 戎小龍2633 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | NaN | NaN |
15 | 1 | 男 | 桑淳熙0616 | 3'57 | 7.60 | 192 | 7 | 5 | 4147 | 174 | 59.2 | NaN |
16 | 1 | 男 | 田曉龍2411 | 4'18 | 8.14 | 210 | 8 | 4 | 4241 | 179 | 61.9 | NaN |
17 | 1 | 男 | 田玉聰2716 | 3'32 | 7.20 | 255 | 22 | 12 | 5324 | 183 | 63.4 | NaN |
18 | 1 | 男 | 王晨宇0613 | 3'56 | 8.15 | 207 | 13 | 12 | 4363 | 173 | 60.5 | NaN |
19 | 1 | 男 | 王家梁0630 | 3'47 | 8.15 | 202 | 13 | 16 | 5364 | 174 | 56 | NaN |
20 | 1 | 男 | 王樂天3331 | 3'53 | 7.85 | 210 | 3 | 7 | 3445 | 177 | 56.9 | NaN |
21 | 1 | 男 | 王一釗1213 | 3'57 | 7.85 | 220 | 9 | 2 | 5670 | 177 | 55.5 | NaN |
22 | 1 | 男 | 王子天0634 | 3'42 | 7.23 | 212 | 12 | 15 | 5709 | 185 | 72.3 | NaN |
23 | 1 | 男 | 王子鑫0012 | 4'3 | 7.68 | 218 | 15 | 3 | 4780 | 177 | 83.7 | NaN |
24 | 1 | 男 | 未曉錕1214 | 4'14 | 8.30 | 206 | 15 | 1 | 3358 | 173 | 46.6 | NaN |
25 | 1 | 男 | 張國瑞033x | 4'04 | 8.15 | 205 | 9 | 5 | 3494 | 169 | 48.3 | NaN |
26 | 1 | 男 | 張皓天0632 | 4'04 | 7.55 | 190 | 12 | 5 | 3286 | 169 | 50.1 | NaN |
27 | 1 | 男 | 張澤地0310 | 4'02 | 7.55 | 240 | 5 | 12 | 4483 | 171 | 58.4 | NaN |
28 | 1 | 男 | 張智賢0318 | 3'57 | 7.89 | 220 | 9 | 11 | 4254 | 166 | 54.8 | NaN |
29 | 1 | 男 | 趙博翰101x | 4'16 | 8.19 | 212 | 27 | 7 | 3498 | 169 | 68 | NaN |
30 | 1 | 男 | 趙澤凱0311 | 4'01 | 7.89 | 213 | 5 | 11 | 4322 | 174 | 55.9 | NaN |
31 | 1 | 男 | 趙澤宇0616 | 4'08 | 8.21 | 208 | 19 | 20 | 3917 | 166 | 51.9 | NaN |
32 | 1 | 男 | 左晶川1217 | 4'06 | 8.71 | 206 | 11 | 4 | 3970 | 172 | 47.8 | NaN |
34 | 2 | 男 | 賈和0633 | 4'22 | 7.97 | 215 | 9 | 9 | 3865 | 175 | 58.7 | NaN |
35 | 2 | 男 | 李森0636 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | NaN | NaN |
36 | 2 | 男 | 李一帆1812 | 4'46 | 8.79 | 172 | 7 | 1 | 4750 | 174 | 88.6 | NaN |
37 | 2 | 男 | 李子陽0618 | 4'01 | 7.37 | 210 | 2 | 7 | 4714 | 182 | 62.5 | NaN |
38 | 2 | 男 | 呂星繁0312 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | NaN | NaN |
39 | 2 | 男 | 趙凌雲105x | 4'13 | 7.77 | 208 | 8 | 7 | 4327 | 173 | 56 | NaN |
40 | 2 | 男 | 趙鵬悅2612 | 4'27 | 8.8 | 185 | 10 | 5 | 4745 | 164 | 74.8 | NaN |
42 | 3 | 男 | 宮誠博0612 | 3'43 | 6.89 | 276 | 16 | 12 | 5212 | 1.84 | 73.1 | NaN |
43 | 3 | 男 | 郭亞浩181X | 4'04 | 7.25 | 240 | 13 | 8 | 4756 | 1.76 | 72 | NaN |
44 | 3 | 男 | 郝曉辰0013 | 3'38 | 7.36 | 246 | 22 | 11 | 4433 | 1.84 | 62.5 | NaN |
45 | 3 | 男 | 李國璽2310 | 4'19 | 8.17 | 220 | 18 | 1 | 4438 | 1.74 | 72.2 | NaN |
46 | 3 | 男 | 李一帆1218 | 4'08 | 7.8 | 227 | 15 | 1 | 6033 | 1.77 | 85.6 | NaN |
data.fillna(0, inplace=True) # 沒有參加體側的同窗分數都填充成0
# 沒有空數據了
data.isnull().any() #查詢是否還有空數據
班級 False
性別 False
姓名 False
1000米 False
50米 False
跳遠 False
體前屈 False
引體 False
肺活量 False
身高 False
體重 False
BMI False
dtype: bool
data.head()
班級 | 性別 | 姓名 | 1000米 | 50米 | 跳遠 | 體前屈 | 引體 | 肺活量 | 身高 | 體重 | BMI | |
---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 1 | 男 | 高孜陽0611 | 4'13 | 8.88 | 195.0 | 12 | 1 | 2785 | 170.0 | 72.6 | 0.0 |
1 | 1 | 男 | 郝少傑1013 | 4'16 | 7.70 | 225.0 | 11 | 7 | 3133 | 174.0 | 52.7 | 0.0 |
2 | 1 | 男 | 郝梓燁0619 | 4'09 | 8.45 | 218.0 | 14 | 1 | 3901 | 169.0 | 46.5 | 0.0 |
3 | 1 | 男 | 何弘源1010 | 4'21 | 8.05 | 206.0 | 13 | 1 | 4946 | 183.0 | 79.7 | 0.0 |
4 | 1 | 男 | 劉碩鵬1212 | 3'44 | 7.52 | 210.0 | 13 | 9 | 3538 | 171.0 | 54.7 | 0.0 |
def convert(x):
if isinstance(x, str):
minute, second = x.split("'")
minute = int(minute)
second = int(second)
return minute + second / 100.0
else:
return x
data['1000米'] = data['1000米'].map(convert) # 映射
data.head()
班級 性別 姓名 1000米 50米 跳遠 體前屈 引體 肺活量 身高 體重 BMI 0 1 男 高孜陽0611 4.13 8.88 195.0 12 1 2785 170.0 72.6 0.0 1 1 男 郝少傑1013 4.16 7.70 225.0 11 7 3133 174.0 52.7 0.0 2 1 男 郝梓燁0619 4.09 8.45 218.0 14 1 3901 169.0 46.5 0.0 3 1 男 何弘源1010 4.21 8.05 206.0 13 1 4946 183.0 79.7 0.0 4 1 男 劉碩鵬1212 3.44 7.52 210.0 13 9 3538 171.0 54.7 0.0spa
score = pd.read_excel('體側成績評分表.xls', header = [0,1])
score
男肺活量 女肺活量 男50米跑 女50米跑 男體前屈 ... 女跳遠 男引體 女仰臥 男1000 女800 成績 分數 成績 分數 成績 分數 成績 分數 成績 分數 ... 成績 分數 成績 分數 成績 分數 成績 分數 成績 分數 0 4540 100 3150 100 7.1 100 7.8 100 23.6 100 ... 204 100 16.0 100 53 100 3'30" 100 3'24" 100 1 4420 95 3100 95 7.2 95 7.9 95 21.5 95 ... 198 95 15.0 95 51 95 3'35" 95 3'30" 95 2 4300 90 3050 90 7.3 90 8.0 90 19.4 90 ... 192 90 14.0 90 49 90 3'40" 90 3'36" 90 3 4050 85 2900 85 7.4 85 8.3 85 17.2 85 ... 185 85 13.0 85 46 85 3'47" 85 3'43" 85 4 3800 80 2750 80