import numpy as npimport pandas as pdfrom pandas import Series,DataFrameimport matplotlib.pyplot as plt
%matplotlib inline
data = pd.read_excel('./18级高一体测成绩汇总.xls')
data
班级 性别 姓名 1000米 50米 跳远 体前屈 引体 肺活量 身高 体重
0 1 高孜阳0611 4'13 8.88 195 12 1 2785 170 72.6
1 1 郝少杰1013 4'16 7.70 225 11 7 3133 174 52.7
2 1 郝梓烨0619 4'09 8.45 218 14 1 3901 169 46.5
3 1 何弘源1010 4'21 8.05 206 13 1 4946 183 79.7
4 1 刘硕鹏1212 3'44 7.52 210 13 9 3538 171 54.7
5 1 刘运硕0314 3'49 7.94 190 20 7 3970 175 66.4
6 1 吕晓瑶0314 3'54 7.75 186 11 7 3710 173 53.9
7 1 米孜聪0636 4'3 8.06 195 3 1 5578 178 83.1
8 1 聂浩然2719 4'01 7.75 220 15 10 3821 175 66.5
9 1 牛苗嘉1211 4'12 7.38 245 17 11 4423 167 53.9
10 1 牛砚哲2813 4 7.82 219 13 11 4031 173 57.4
11 1 齐子涵185x 4'13 7.37 228 9 15 4354 163 54.6
12 1 乔一甲0616 3'45 7.66 202 7 3 2238 179 61.1
13 1 任晓波0311 3'46 7.66 245 3 7 4811 177 63.9
14 1 戎小龙2633 0 0 0 0 0 0 0 NaN
15 1 桑淳熙0616 3'57 7.60 192 7 5 4147 174 59.2
16 1 田晓龙2411 4'18 8.14 210 8 4 4241 179 61.9
17 1 田玉聪2716 3'32 7.20 255 22 12 5324 183 63.4
18 1 王晨宇0613 3'56 8.15 207 13 12 4363 173 60.5
19 1 王家梁0630 3'47 8.15 202 13 16 5364 174 56
20 1 王乐天3331 3'53 7.85 210 3 7 3445 177 56.9
21 1 王一钊1213 3'57 7.85 220 9 2 5670 177 55.5
22 1 王子天0634 3'42 7.23 212 12 15 5709 185 72.3
23 1 王子鑫0012 4'3 7.68 218 15 3 4780 177 83.7
24 1 未晓锟1214 4'14 8.30 206 15 1 3358 173 46.6
25 1 张国瑞033x 4'04 8.15 205 9 5 3494 169 48.3
26 1 张皓天0632 4'04 7.55 190 12 5 3286 169 50.1
27 1 张泽地0310 4'02 7.55 240 5 12 4483 171 58.4
28 1 张智贤0318 3'57 7.89 220 9 11 4254 166 54.8
29 1 赵博翰101x 4'16 8.19 212 27 7 3498 169 68
... ... ... ... ... ... ... ... ... ... ... ...
463 17 王亚楠2636 4'15 8.36 217 20 2 5452 175 83.4
464 17 陈核涛2612 4'36 7.22 267 6 11 5555 179 62.2
465 17 曹佳尧213X 3'48 7.37 225 17 12 5519 176 62.2
466 17 贾存生7812 3'58 7.37 236 12 11 4246 169 60.1
467 17 杨辰阳0631 4'02 8 210 18 7 4034 167 56.8
468 17 张雨康181X 4'02 8 196 12 4 5738 172 66.5
469 17 刘帅怡0319 4'38 8.09 223 21 8 5168 169 78
470 17 张世荣0326 NaN NaN NaN NaN NaN NaN NaN NaN
471 17 刘泽阳181X 4'2 8.37 208 21 8 5677 172 63.7
472 17 王鹏鑫0014 4'26 7.89 232 21 8 7052 180 82.9
473 17 贾耀杰1034 4'09 8.46 205 15 7 4208 171 61
474 17 刘艺通0619 3'49 7.66 232 11 10 5897 175 56.1
475 17 段佳硕2737 4'36 7.77 236 11 20 5158 176 55.2
476 17 刘鼎0315 4'37 8.27 208 17 1 6311 177 95.6
477 17 张浩2734 3'44 8.27 217 15 7 5075 170 57.6
478 17 庞慧谦0707 3'55 7.98 212 20 10 5564 168 54.5
479 17 李垚泽0615 3'41 7.57 225 9 5 5599 181 74.8
480 17 胡德皓3614 5'29 9.02 210 12 0 6712 183 95.9
481 17 张博0316 4'11 7.51 238 21 14 5590 179 67.7
482 17 张育森3011 4'56 7.42 252 9 13 5159 180 70
483 17 吴宜凯0015 3'54 7.96 229 14 9 5254 182 64.1
484 17 左一萌1015 NaN NaN NaN NaN NaN NaN NaN NaN
485 17 王鹏飞0615 4'4 8.02 180 8 1 4592 187 64.6
486 17 张泽琼1815 3'54 7.51 238 13 11 5572 176 59.5
487 17 张晓波061X 4'58 8.76 200 12 9 4533 169 51.3
488 17 张乔楠0311 4'23 8.27 208 10 0 4647 176 69.5
489 17 郭泽森0333 5'19 9.55 210 15 6 7042 177 76
490 17 陈子龙061X 3'25 7.5 252 13 13 5755 181 65
491 17 王丹龙0636 4'39 7.81 208 14 11 5688 172 51.7
492 17 王玉涵0636 NaN NaN NaN NaN NaN NaN NaN NaN

493 rows × 11 columns

data[:45]
班级 性别 姓名 1000米 50米 跳远 体前屈 引体 肺活量 身高 体重
0 1 高孜阳0611 4'13 8.88 195 12 1 2785 170 72.6
1 1 郝少杰1013 4'16 7.70 225 11 7 3133 174 52.7
2 1 郝梓烨0619 4'09 8.45 218 14 1 3901 169 46.5
3 1 何弘源1010 4'21 8.05 206 13 1 4946 183 79.7
4 1 刘硕鹏1212 3'44 7.52 210 13 9 3538 171 54.7
5 1 刘运硕0314 3'49 7.94 190 20 7 3970 175 66.4
6 1 吕晓瑶0314 3'54 7.75 186 11 7 3710 173 53.9
7 1 米孜聪0636 4'3 8.06 195 3 1 5578 178 83.1
8 1 聂浩然2719 4'01 7.75 220 15 10 3821 175 66.5
9 1 牛苗嘉1211 4'12 7.38 245 17 11 4423 167 53.9
10 1 牛砚哲2813 4 7.82 219 13 11 4031 173 57.4
11 1 齐子涵185x 4'13 7.37 228 9 15 4354 163 54.6
12 1 乔一甲0616 3'45 7.66 202 7 3 2238 179 61.1
13 1 任晓波0311 3'46 7.66 245 3 7 4811 177 63.9
14 1 戎小龙2633 0 0 0 0 0 0 0 NaN
15 1 桑淳熙0616 3'57 7.60 192 7 5 4147 174 59.2
16 1 田晓龙2411 4'18 8.14 210 8 4 4241 179 61.9
17 1 田玉聪2716 3'32 7.20 255 22 12 5324 183 63.4
18 1 王晨宇0613 3'56 8.15 207 13 12 4363 173 60.5
19 1 王家梁0630 3'47 8.15 202 13 16 5364 174 56
20 1 王乐天3331 3'53 7.85 210 3 7 3445 177 56.9
21 1 王一钊1213 3'57 7.85 220 9 2 5670 177 55.5
22 1 王子天0634 3'42 7.23 212 12 15 5709 185 72.3
23 1 王子鑫0012 4'3 7.68 218 15 3 4780 177 83.7
24 1 未晓锟1214 4'14 8.30 206 15 1 3358 173 46.6
25 1 张国瑞033x 4'04 8.15 205 9 5 3494 169 48.3
26 1 张皓天0632 4'04 7.55 190 12 5 3286 169 50.1
27 1 张泽地0310 4'02 7.55 240 5 12 4483 171 58.4
28 1 张智贤0318 3'57 7.89 220 9 11 4254 166 54.8
29 1 赵博翰101x 4'16 8.19 212 27 7 3498 169 68
30 1 赵泽凯0311 4'01 7.89 213 5 11 4322 174 55.9
31 1 赵泽宇0616 4'08 8.21 208 19 20 3917 166 51.9
32 1 左晶川1217 4'06 8.71 206 11 4 3970 172 47.8
33 班级 性别 姓名 800米 50米 跳远 体前屈 仰卧起坐 肺活量 身高 体重
34 2 贾和0633 4'22 7.97 215 9 9 3865 175 58.7
35 2 李森0636 0 0 0 0 0 0 0 NaN
36 2 李一帆1812 4'46 8.79 172 7 1 4750 174 88.6
37 2 李子阳0618 4'01 7.37 210 2 7 4714 182 62.5
38 2 吕星繁0312 0 0 0 0 0 0 0 NaN
39 2 赵凌云105x 4'13 7.77 208 8 7 4327 173 56
40 2 赵鹏悦2612 4'27 8.8 185 10 5 4745 164 74.8
41 班级 性别 姓名 1000米 50米 跳远 体前屈 引体 肺活量 身高 体重
42 3 宫诚博0612 3'43 6.89 276 16 12 5212 1.84 73.1
43 3 郭亚浩181X 4'04 7.25 240 13 8 4756 1.76 72
44 3 郝晓辰0013 3'38 7.36 246 22 11 4433 1.84 62.5
cond = data['班级']!='班级'  # 删除多余的班级信息
data = data[cond]
data[:45]
班级 性别 姓名 1000米 50米 跳远 体前屈 引体 肺活量 身高 体重
0 1 高孜阳0611 4'13 8.88 195 12 1 2785 170 72.6
1 1 郝少杰1013 4'16 7.70 225 11 7 3133 174 52.7
2 1 郝梓烨0619 4'09 8.45 218 14 1 3901 169 46.5
3 1 何弘源1010 4'21 8.05 206 13 1 4946 183 79.7
4 1 刘硕鹏1212 3'44 7.52 210 13 9 3538 171 54.7
5 1 刘运硕0314 3'49 7.94 190 20 7 3970 175 66.4
6 1 吕晓瑶0314 3'54 7.75 186 11 7 3710 173 53.9
7 1 米孜聪0636 4'3 8.06 195 3 1 5578 178 83.1
8 1 聂浩然2719 4'01 7.75 220 15 10 3821 175 66.5
9 1 牛苗嘉1211 4'12 7.38 245 17 11 4423 167 53.9
10 1 牛砚哲2813 4 7.82 219 13 11 4031 173 57.4
11 1 齐子涵185x 4'13 7.37 228 9 15 4354 163 54.6
12 1 乔一甲0616 3'45 7.66 202 7 3 2238 179 61.1
13 1 任晓波0311 3'46 7.66 245 3 7 4811 177 63.9
14 1 戎小龙2633 0 0 0 0 0 0 0 NaN
15 1 桑淳熙0616 3'57 7.60 192 7 5 4147 174 59.2
16 1 田晓龙2411 4'18 8.14 210 8 4 4241 179 61.9
17 1 田玉聪2716 3'32 7.20 255 22 12 5324 183 63.4
18 1 王晨宇0613 3'56 8.15 207 13 12 4363 173 60.5
19 1 王家梁0630 3'47 8.15 202 13 16 5364 174 56
20 1 王乐天3331 3'53 7.85 210 3 7 3445 177 56.9
21 1 王一钊1213 3'57 7.85 220 9 2 5670 177 55.5
22 1 王子天0634 3'42 7.23 212 12 15 5709 185 72.3
23 1 王子鑫0012 4'3 7.68 218 15 3 4780 177 83.7
24 1 未晓锟1214 4'14 8.30 206 15 1 3358 173 46.6
25 1 张国瑞033x 4'04 8.15 205 9 5 3494 169 48.3
26 1 张皓天0632 4'04 7.55 190 12 5 3286 169 50.1
27 1 张泽地0310 4'02 7.55 240 5 12 4483 171 58.4
28 1 张智贤0318 3'57 7.89 220 9 11 4254 166 54.8
29 1 赵博翰101x 4'16 8.19 212 27 7 3498 169 68
30 1 赵泽凯0311 4'01 7.89 213 5 11 4322 174 55.9
31 1 赵泽宇0616 4'08 8.21 208 19 20 3917 166 51.9
32 1 左晶川1217 4'06 8.71 206 11 4 3970 172 47.8
34 2 贾和0633 4'22 7.97 215 9 9 3865 175 58.7
35 2 李森0636 0 0 0 0 0 0 0 NaN
36 2 李一帆1812 4'46 8.79 172 7 1 4750 174 88.6
37 2 李子阳0618 4'01 7.37 210 2 7 4714 182 62.5
38 2 吕星繁0312 0 0 0 0 0 0 0 NaN
39 2 赵凌云105x 4'13 7.77 208 8 7 4327 173 56
40 2 赵鹏悦2612 4'27 8.8 185 10 5 4745 164 74.8
42 3 宫诚博0612 3'43 6.89 276 16 12 5212 1.84 73.1
43 3 郭亚浩181X 4'04 7.25 240 13 8 4756 1.76 72
44 3 郝晓辰0013 3'38 7.36 246 22 11 4433 1.84 62.5
45 3 李国玺2310 4'19 8.17 220 18 1 4438 1.74 72.2
46 3 李一帆1218 4'08 7.8 227 15 1 6033 1.77 85.6
data.fillna(0,inplace=True)  #没参加处理为0
C:\Users\LXQ\Anaconda3\lib\site-packages\pandas\core\frame.py:2754: SettingWithCopyWarning:
A value is trying to be set on a copy of a slice from a DataFrameSee the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copydowncast=downcast, **kwargs)
# 没有空数据了
data.isnull().any()
班级       False
性别       False
姓名       False
1000米    False
50米      False
跳远       False
体前屈      False
引体       False
肺活量      False
身高       False
体重       False
dtype: bool
data.head()
班级 性别 姓名 1000米 50米 跳远 体前屈 引体 肺活量 身高 体重
0 1 高孜阳0611 4'13 8.88 195.0 12 1 2785 170.0 72.6
1 1 郝少杰1013 4'16 7.70 225.0 11 7 3133 174.0 52.7
2 1 郝梓烨0619 4'09 8.45 218.0 14 1 3901 169.0 46.5
3 1 何弘源1010 4'21 8.05 206.0 13 1 4946 183.0 79.7
4 1 刘硕鹏1212 3'44 7.52 210.0 13 9 3538 171.0 54.7
def convert(x):    #将数据转换为成绩if isinstance(x,str):minute,second = x.split("'")minute = int(minute)second = int(second)return minute + second/100.0else:return xdata['1000米'] = data['1000米'].map(convert)data.head()
C:\Users\LXQ\Anaconda3\lib\site-packages\ipykernel_launcher.py:10: SettingWithCopyWarning:
A value is trying to be set on a copy of a slice from a DataFrame.
Try using .loc[row_indexer,col_indexer] = value insteadSee the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy# Remove the CWD from sys.path while we load stuff.
班级 性别 姓名 1000米 50米 跳远 体前屈 引体 肺活量 身高 体重
0 1 高孜阳0611 4.13 8.88 195.0 12 1 2785 170.0 72.6
1 1 郝少杰1013 4.16 7.70 225.0 11 7 3133 174.0 52.7
2 1 郝梓烨0619 4.09 8.45 218.0 14 1 3901 169.0 46.5
3 1 何弘源1010 4.21 8.05 206.0 13 1 4946 183.0 79.7
4 1 刘硕鹏1212 3.44 7.52 210.0 13 9 3538 171.0 54.7
score = pd.read_excel('体侧成绩评分表.xls',header = [0,1])
score
男肺活量 男肺活量 女肺活量 男50米跑 女50米跑 男体前屈 女体前屈 ... 女跳远 男引体 女仰卧 男1000 女800
成绩 分数 成绩 分数 成绩 分数 成绩 分数 成绩 分数 成绩 ... 成绩 分数 成绩 分数 成绩 分数 成绩 分数 成绩 分数
4540 100 3150 100 7.1 100 7.8 100 23.6 100 24.2 ... 204 100 16.0 100 53 100 3'30" 100 3'24" 100
4420 95 3100 95 7.2 95 7.9 95 21.5 95 22.5 ... 198 95 15.0 95 51 95 3'35" 95 3'30" 95
4300 90 3050 90 7.3 90 8.0 90 19.4 90 20.8 ... 192 90 14.0 90 49 90 3'40" 90 3'36" 90
4050 85 2900 85 7.4 85 8.3 85 17.2 85 19.1 ... 185 85 13.0 85 46 85 3'47" 85 3'43" 85
3800 80 2750 80 7.5 80 8.6 80 15.0 80 17.4 ... 178 80 12.0 80 43 80 3'55" 80 3'50" 80
3680 78 2650 78 7.7 78 8.8 78 13.6 78 16.1 ... 175 78 NaN 78 41 78 4'00" 78 3'55" 78
3560 76 2550 76 7.9 76 9.0 76 12.2 76 14.8 ... 172 76 11.0 76 39 76 4'05" 76 4'00" 76
3440 74 2450 74 8.1 74 9.2 74 10.8 74 13.5 ... 169 74 NaN 74 37 74 4'10" 74 4'05" 74
3320 72 2350 72 8.3 72 9.4 72 9.4 72 12.2 ... 166 72 10.0 72 35 72 4'15" 72 4'10" 72
3200 70 2250 70 8.5 70 9.6 70 8.0 70 10.9 ... 163 70 NaN 70 33 70 4'20" 70 4'15" 70
3080 68 2150 68 8.7 68 9.8 68 6.6 68 9.6 ... 160 68 9.0 68 31 68 4'25" 68 4'20" 68
2960 66 2050 66 8.9 66 10.0 66 5.2 66 8.3 ... 157 66 NaN 66 29 66 4'30" 66 4'25" 66
2840 64 1950 64 9.1 64 10.2 64 3.8 64 7.0 ... 154 64 8.0 64 27 64 4'35" 64 4'30" 64
2720 62 1850 62 9.3 62 10.4 62 2.4 62 5.7 ... 151 62 NaN 62 25 62 4'40" 62 4'35" 62
2600 60 1750 60 9.5 60 10.6 60 1.0 60 4.4 ... 148 60 7.0 60 23 60 4'45" 60 4'40" 60
2470 50 1710 50 9.7 50 10.8 50 0.0 50 3.6 ... 143 50 6.0 50 21 50 5'05" 50 4'50" 50
2340 40 1670 40 9.9 40 11.0 40 -1.0 40 2.8 ... 138 40 5.0 40 19 40 5'25" 40 5'00" 40
2210 30 1630 30 10.1 30 11.2 30 -2.0 30 2.0 ... 133 30 4.0 30 17 30 5'45" 30 5'10" 30
2080 20 1590 20 10.3 20 11.4 20 -3.0 20 1.2 ... 128 20 3.0 20 15 20 6'05" 20 5'20" 20
1950 10 1550 10 10.5 10 11.6 10 -4.0 10 0.4 ... 123 10 2.0 10 13 10 6'25" 10 5'30" 10

20 rows × 23 columns

# 男生的成绩进行了转化
def convert(item):m,s = item.strip('"').split("'")m,s = int(m),int(s)return m + s/100.0
score.iloc[:,-4] = score.iloc[:,-4].map(convert)
# 女生成绩,进行转化
def convert(item):m,s = item.strip('"').split("'")m,s = int(m),int(s)return m + s/100.0
score.iloc[:,-2] = score.iloc[:,-2].map(convert)
score
男肺活量 男肺活量 女肺活量 男50米跑 女50米跑 男体前屈 女体前屈 ... 女跳远 男引体 女仰卧 男1000 女800
成绩 分数 成绩 分数 成绩 分数 成绩 分数 成绩 分数 成绩 ... 成绩 分数 成绩 分数 成绩 分数 成绩 分数 成绩 分数
4540 100 3150 100 7.1 100 7.8 100 23.6 100 24.2 ... 204 100 16.0 100 53 100 3.30 100 3.24 100
4420 95 3100 95 7.2 95 7.9 95 21.5 95 22.5 ... 198 95 15.0 95 51 95 3.35 95 3.30 95
4300 90 3050 90 7.3 90 8.0 90 19.4 90 20.8 ... 192 90 14.0 90 49 90 3.40 90 3.36 90
4050 85 2900 85 7.4 85 8.3 85 17.2 85 19.1 ... 185 85 13.0 85 46 85 3.47 85 3.43 85
3800 80 2750 80 7.5 80 8.6 80 15.0 80 17.4 ... 178 80 12.0 80 43 80 3.55 80 3.50 80
3680 78 2650 78 7.7 78 8.8 78 13.6 78 16.1 ... 175 78 NaN 78 41 78 4.00 78 3.55 78
3560 76 2550 76 7.9 76 9.0 76 12.2 76 14.8 ... 172 76 11.0 76 39 76 4.05 76 4.00 76
3440 74 2450 74 8.1 74 9.2 74 10.8 74 13.5 ... 169 74 NaN 74 37 74 4.10 74 4.05 74
3320 72 2350 72 8.3 72 9.4 72 9.4 72 12.2 ... 166 72 10.0 72 35 72 4.15 72 4.10 72
3200 70 2250 70 8.5 70 9.6 70 8.0 70 10.9 ... 163 70 NaN 70 33 70 4.20 70 4.15 70
3080 68 2150 68 8.7 68 9.8 68 6.6 68 9.6 ... 160 68 9.0 68 31 68 4.25 68 4.20 68
2960 66 2050 66 8.9 66 10.0 66 5.2 66 8.3 ... 157 66 NaN 66 29 66 4.30 66 4.25 66
2840 64 1950 64 9.1 64 10.2 64 3.8 64 7.0 ... 154 64 8.0 64 27 64 4.35 64 4.30 64
2720 62 1850 62 9.3 62 10.4 62 2.4 62 5.7 ... 151 62 NaN 62 25 62 4.40 62 4.35 62
2600 60 1750 60 9.5 60 10.6 60 1.0 60 4.4 ... 148 60 7.0 60 23 60 4.45 60 4.40 60
2470 50 1710 50 9.7 50 10.8 50 0.0 50 3.6 ... 143 50 6.0 50 21 50 5.05 50 4.50 50
2340 40 1670 40 9.9 40 11.0 40 -1.0 40 2.8 ... 138 40 5.0 40 19 40 5.25 40 5.00 40
2210 30 1630 30 10.1 30 11.2 30 -2.0 30 2.0 ... 133 30 4.0 30 17 30 5.45 30 5.10 30
2080 20 1590 20 10.3 20 11.4 20 -3.0 20 1.2 ... 128 20 3.0 20 15 20 6.05 20 5.20 20
1950 10 1550 10 10.5 10 11.6 10 -4.0 10 0.4 ... 123 10 2.0 10 13 10 6.25 10 5.30 10

20 rows × 23 columns

data.columns
Index(['班级', '性别', '姓名', '1000米', '50米', '跳远', '体前屈', '引体', '肺活量', '身高', '体重'], dtype='object')
data.columns = ['班级', '性别', '姓名', '男1000', '男50米跑', '跳远', '体前屈', '引体', '肺活量', '身高', '体重']
data['男50米跑'] = data['男50米跑'].astype(np.float)
C:\Users\LXQ\Anaconda3\lib\site-packages\ipykernel_launcher.py:1: SettingWithCopyWarning:
A value is trying to be set on a copy of a slice from a DataFrame.
Try using .loc[row_indexer,col_indexer] = value insteadSee the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy"""Entry point for launching an IPython kernel.
score['男1000']
成绩 成绩 分数
4540 3.30 100
4420 3.35 95
4300 3.40 90
4050 3.47 85
3800 3.55 80
3680 4.00 78
3560 4.05 76
3440 4.10 74
3320 4.15 72
3200 4.20 70
3080 4.25 68
2960 4.30 66
2840 4.35 64
2720 4.40 62
2600 4.45 60
2470 5.05 50
2340 5.25 40
2210 5.45 30
2080 6.05 20
1950 6.25 10
for col in [ '男1000', '男50米跑']:#     获取成绩的标准s = score[col]def convert(x):for i in range(len(s)):if x <= s['成绩'].iloc[0]:if x == 0:return 0   #没有参加这个项目return 100elif x > s['成绩'].iloc[-1]:return 0 #跑的太慢elif (x > s['成绩'].iloc[i - 1]) and (x <= s['成绩'].iloc[i]):return s['分数'].iloc[i]data[col + '成绩'] = data[col].map(convert)
C:\Users\LXQ\Anaconda3\lib\site-packages\ipykernel_launcher.py:16: SettingWithCopyWarning:
A value is trying to be set on a copy of a slice from a DataFrame.
Try using .loc[row_indexer,col_indexer] = value insteadSee the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copyapp.launch_new_instance()
data.head()
班级 性别 姓名 男1000 男50米跑 跳远 体前屈 引体 肺活量 身高 体重 男1000成绩 男50米跑成绩
0 1 高孜阳0611 4.13 8.88 195.0 12 1 2785 170.0 72.6 72 66
1 1 郝少杰1013 4.16 7.70 225.0 11 7 3133 174.0 52.7 70 78
2 1 郝梓烨0619 4.09 8.45 218.0 14 1 3901 169.0 46.5 74 70
3 1 何弘源1010 4.21 8.05 206.0 13 1 4946 183.0 79.7 68 74
4 1 刘硕鹏1212 3.44 7.52 210.0 13 9 3538 171.0 54.7 85 78
for col in ['跳远', '体前屈', '引体']:s = score['男'+col]def convert(x):for i in range(len(s)):if x >= s['成绩'].iloc[i]:return s['分数'].iloc[i]return 0data[col + '成绩'] = data[col].map(convert)
C:\Users\LXQ\Anaconda3\lib\site-packages\ipykernel_launcher.py:10: SettingWithCopyWarning:
A value is trying to be set on a copy of a slice from a DataFrame.
Try using .loc[row_indexer,col_indexer] = value insteadSee the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy# Remove the CWD from sys.path while we load stuff.
data.head()
班级 性别 姓名 男1000 男50米跑 跳远 体前屈 引体 肺活量 身高 体重 男1000成绩 男50米跑成绩 跳远成绩 体前屈成绩 引体成绩
0 1 高孜阳0611 4.13 8.88 195.0 12 1 2785 170.0 72.6 72 66 60 74 0
1 1 郝少杰1013 4.16 7.70 225.0 11 7 3133 174.0 52.7 70 78 74 74 60
2 1 郝梓烨0619 4.09 8.45 218.0 14 1 3901 169.0 46.5 74 70 70 78 0
3 1 何弘源1010 4.21 8.05 206.0 13 1 4946 183.0 79.7 68 74 64 76 0
4 1 刘硕鹏1212 3.44 7.52 210.0 13 9 3538 171.0 54.7 85 78 66 76 68
cols = ['班级', '性别', '姓名', '男1000','男1000成绩', '男50米跑', '男50米跑成绩','跳远', '跳远成绩', '体前屈', '体前屈成绩',  '引体', '引体成绩','肺活量','身高','体重']
# 根据索引的顺序去DataFrame中取值
data = data[cols]
data.head()
班级 性别 姓名 男1000 男1000成绩 男50米跑 男50米跑成绩 跳远 跳远成绩 体前屈 体前屈成绩 引体 引体成绩 肺活量 身高 体重
0 1 高孜阳0611 4.13 72 8.88 66 195.0 60 12 74 1 0 2785 170.0 72.6
1 1 郝少杰1013 4.16 70 7.70 78 225.0 74 11 74 7 60 3133 174.0 52.7
2 1 郝梓烨0619 4.09 74 8.45 70 218.0 70 14 78 1 0 3901 169.0 46.5
3 1 何弘源1010 4.21 68 8.05 74 206.0 64 13 76 1 0 4946 183.0 79.7
4 1 刘硕鹏1212 3.44 85 7.52 78 210.0 66 13 76 9 68 3538 171.0 54.7
data
班级 性别 姓名 男1000 男1000成绩 男50米跑 男50米跑成绩 跳远 跳远成绩 体前屈 体前屈成绩 引体 引体成绩 肺活量 身高 体重
0 1 高孜阳0611 4.13 72 8.88 66 195.0 60 12 74 1 0 2785 170.0 72.6
1 1 郝少杰1013 4.16 70 7.70 78 225.0 74 11 74 7 60 3133 174.0 52.7
2 1 郝梓烨0619 4.09 74 8.45 70 218.0 70 14 78 1 0 3901 169.0 46.5
3 1 何弘源1010 4.21 68 8.05 74 206.0 64 13 76 1 0 4946 183.0 79.7
4 1 刘硕鹏1212 3.44 85 7.52 78 210.0 66 13 76 9 68 3538 171.0 54.7
5 1 刘运硕0314 3.49 80 7.94 74 190.0 50 20 90 7 60 3970 175.0 66.4
6 1 吕晓瑶0314 3.54 80 7.75 76 186.0 40 11 74 7 60 3710 173.0 53.9
7 1 米孜聪0636 4.03 76 8.06 74 195.0 60 3 62 1 0 5578 178.0 83.1
8 1 聂浩然2719 4.01 76 7.75 76 220.0 72 15 80 10 72 3821 175.0 66.5
9 1 牛苗嘉1211 4.12 72 7.38 85 245.0 85 17 80 11 76 4423 167.0 53.9
10 1 牛砚哲2813 4.00 78 7.82 76 219.0 72 13 76 11 76 4031 173.0 57.4
11 1 齐子涵185x 4.13 72 7.37 85 228.0 76 9 70 15 95 4354 163.0 54.6
12 1 乔一甲0616 3.45 85 7.66 78 202.0 62 7 68 3 20 2238 179.0 61.1
13 1 任晓波0311 3.46 85 7.66 78 245.0 85 3 62 7 60 4811 177.0 63.9
14 1 戎小龙2633 0.00 0 0.00 0 0.0 0 0 50 0 0 0 0.0 0.0
15 1 桑淳熙0616 3.57 78 7.60 78 192.0 50 7 68 5 40 4147 174.0 59.2
16 1 田晓龙2411 4.18 70 8.14 72 210.0 66 8 70 4 30 4241 179.0 61.9
17 1 田玉聪2716 3.32 95 7.20 95 255.0 90 22 95 12 80 5324 183.0 63.4
18 1 王晨宇0613 3.56 78 8.15 72 207.0 64 13 76 12 80 4363 173.0 60.5
19 1 王家梁0630 3.47 85 8.15 72 202.0 62 13 76 16 100 5364 174.0 56.0
20 1 王乐天3331 3.53 80 7.85 76 210.0 66 3 62 7 60 3445 177.0 56.9
21 1 王一钊1213 3.57 78 7.85 76 220.0 72 9 70 2 10 5670 177.0 55.5
22 1 王子天0634 3.42 85 7.23 90 212.0 68 12 74 15 95 5709 185.0 72.3
23 1 王子鑫0012 4.03 76 7.68 78 218.0 70 15 80 3 20 4780 177.0 83.7
24 1 未晓锟1214 4.14 72 8.30 72 206.0 64 15 80 1 0 3358 173.0 46.6
25 1 张国瑞033x 4.04 76 8.15 72 205.0 64 9 70 5 40 3494 169.0 48.3
26 1 张皓天0632 4.04 76 7.55 78 190.0 50 12 74 5 40 3286 169.0 50.1
27 1 张泽地0310 4.02 76 7.55 78 240.0 80 5 64 12 80 4483 171.0 58.4
28 1 张智贤0318 3.57 78 7.89 76 220.0 72 9 70 11 76 4254 166.0 54.8
29 1 赵博翰101x 4.16 70 8.19 72 212.0 68 27 100 7 60 3498 169.0 68.0
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
463 17 王亚楠2636 4.15 72 8.36 70 217.0 70 20 90 2 10 5452 175.0 83.4
464 17 陈核涛2612 4.36 62 7.22 90 267.0 100 6 66 11 76 5555 179.0 62.2
465 17 曹佳尧213X 3.48 80 7.37 85 225.0 74 17 80 12 80 5519 176.0 62.2
466 17 贾存生7812 3.58 78 7.37 85 236.0 80 12 74 11 76 4246 169.0 60.1
467 17 杨辰阳0631 4.02 76 8.00 74 210.0 66 18 85 7 60 4034 167.0 56.8
468 17 张雨康181X 4.02 76 8.00 74 196.0 60 12 74 4 30 5738 172.0 66.5
469 17 刘帅怡0319 4.38 62 8.09 74 223.0 74 21 90 8 64 5168 169.0 78.0
470 17 张世荣0326 0.00 0 0.00 0 0.0 0 0 50 0 0 0 0.0 0.0
471 17 刘泽阳181X 4.02 76 8.37 70 208.0 66 21 90 8 64 5677 172.0 63.7
472 17 王鹏鑫0014 4.26 66 7.89 76 232.0 78 21 90 8 64 7052 180.0 82.9
473 17 贾耀杰1034 4.09 74 8.46 70 205.0 64 15 80 7 60 4208 171.0 61.0
474 17 刘艺通0619 3.49 80 7.66 78 232.0 78 11 74 10 72 5897 175.0 56.1
475 17 段佳硕2737 4.36 62 7.77 76 236.0 80 11 74 20 100 5158 176.0 55.2
476 17 刘鼎0315 4.37 62 8.27 72 208.0 66 17 80 1 0 6311 177.0 95.6
477 17 张浩2734 3.44 85 8.27 72 217.0 70 15 80 7 60 5075 170.0 57.6
478 17 庞慧谦0707 3.55 80 7.98 74 212.0 68 20 90 10 72 5564 168.0 54.5
479 17 李垚泽0615 3.41 85 7.57 78 225.0 74 9 70 5 40 5599 181.0 74.8
480 17 胡德皓3614 5.29 30 9.02 64 210.0 66 12 74 0 0 6712 183.0 95.9
481 17 张博0316 4.11 72 7.51 78 238.0 80 21 90 14 90 5590 179.0 67.7
482 17 张育森3011 4.56 50 7.42 80 252.0 90 9 70 13 85 5159 180.0 70.0
483 17 吴宜凯0015 3.54 80 7.96 74 229.0 76 14 78 9 68 5254 182.0 64.1
484 17 左一萌1015 0.00 0 0.00 0 0.0 0 0 50 0 0 0 0.0 0.0
485 17 王鹏飞0615 4.04 76 8.02 74 180.0 30 8 70 1 0 4592 187.0 64.6
486 17 张泽琼1815 3.54 80 7.51 78 238.0 80 13 76 11 76 5572 176.0 59.5
487 17 张晓波061X 4.58 50 8.76 66 200.0 62 12 74 9 68 4533 169.0 51.3
488 17 张乔楠0311 4.23 68 8.27 72 208.0 66 10 72 0 0 4647 176.0 69.5
489 17 郭泽森0333 5.19 40 9.55 50 210.0 66 15 80 6 50 7042 177.0 76.0
490 17 陈子龙061X 3.25 100 7.50 80 252.0 90 13 76 13 85 5755 181.0 65.0
491 17 王丹龙0636 4.39 62 7.81 76 208.0 66 14 78 11 76 5688 172.0 51.7
492 17 王玉涵0636 0.00 0 0.00 0 0.0 0 0 50 0 0 0 0.0 0.0

477 rows × 16 columns

def convert(x):if x > 100:return x/100else:return x
data['身高'] = data['身高'].map(convert)
data['BMI'] = (data['体重']/(data['身高'])**2).round(1)
'''≤16.4
23.3~26.3'''
def convert_bmi(x):   #在取名时可以更加准确比如取为convert_bmiif x >= 26.4:return 60elif (x <= 16.4) or (x >=23.3 and x <= 26.3):return 80elif x >=16.5 and x <=23.2:return 100else:return 0data['BMI_score'] = data['BMI'].map(convert_bmi)
data.head(50)
班级 性别 姓名 男1000 男1000成绩 男50米跑 男50米跑成绩 跳远 跳远成绩 体前屈 体前屈成绩 引体 引体成绩 肺活量 身高 体重 BMI BMI_score
0 1 高孜阳0611 4.13 72 8.88 66 195.0 60 12 74 1 0 2785 1.70 72.6 25.1 80
1 1 郝少杰1013 4.16 70 7.70 78 225.0 74 11 74 7 60 3133 1.74 52.7 17.4 100
2 1 郝梓烨0619 4.09 74 8.45 70 218.0 70 14 78 1 0 3901 1.69 46.5 16.3 80
3 1 何弘源1010 4.21 68 8.05 74 206.0 64 13 76 1 0 4946 1.83 79.7 23.8 80
4 1 刘硕鹏1212 3.44 85 7.52 78 210.0 66 13 76 9 68 3538 1.71 54.7 18.7 100
5 1 刘运硕0314 3.49 80 7.94 74 190.0 50 20 90 7 60 3970 1.75 66.4 21.7 100
6 1 吕晓瑶0314 3.54 80 7.75 76 186.0 40 11 74 7 60 3710 1.73 53.9 18.0 100
7 1 米孜聪0636 4.03 76 8.06 74 195.0 60 3 62 1 0 5578 1.78 83.1 26.2 80
8 1 聂浩然2719 4.01 76 7.75 76 220.0 72 15 80 10 72 3821 1.75 66.5 21.7 100
9 1 牛苗嘉1211 4.12 72 7.38 85 245.0 85 17 80 11 76 4423 1.67 53.9 19.3 100
10 1 牛砚哲2813 4.00 78 7.82 76 219.0 72 13 76 11 76 4031 1.73 57.4 19.2 100
11 1 齐子涵185x 4.13 72 7.37 85 228.0 76 9 70 15 95 4354 1.63 54.6 20.6 100
12 1 乔一甲0616 3.45 85 7.66 78 202.0 62 7 68 3 20 2238 1.79 61.1 19.1 100
13 1 任晓波0311 3.46 85 7.66 78 245.0 85 3 62 7 60 4811 1.77 63.9 20.4 100
14 1 戎小龙2633 0.00 0 0.00 0 0.0 0 0 50 0 0 0 0.00 0.0 NaN 0
15 1 桑淳熙0616 3.57 78 7.60 78 192.0 50 7 68 5 40 4147 1.74 59.2 19.6 100
16 1 田晓龙2411 4.18 70 8.14 72 210.0 66 8 70 4 30 4241 1.79 61.9 19.3 100
17 1 田玉聪2716 3.32 95 7.20 95 255.0 90 22 95 12 80 5324 1.83 63.4 18.9 100
18 1 王晨宇0613 3.56 78 8.15 72 207.0 64 13 76 12 80 4363 1.73 60.5 20.2 100
19 1 王家梁0630 3.47 85 8.15 72 202.0 62 13 76 16 100 5364 1.74 56.0 18.5 100
20 1 王乐天3331 3.53 80 7.85 76 210.0 66 3 62 7 60 3445 1.77 56.9 18.2 100
21 1 王一钊1213 3.57 78 7.85 76 220.0 72 9 70 2 10 5670 1.77 55.5 17.7 100
22 1 王子天0634 3.42 85 7.23 90 212.0 68 12 74 15 95 5709 1.85 72.3 21.1 100
23 1 王子鑫0012 4.03 76 7.68 78 218.0 70 15 80 3 20 4780 1.77 83.7 26.7 60
24 1 未晓锟1214 4.14 72 8.30 72 206.0 64 15 80 1 0 3358 1.73 46.6 15.6 80
25 1 张国瑞033x 4.04 76 8.15 72 205.0 64 9 70 5 40 3494 1.69 48.3 16.9 100
26 1 张皓天0632 4.04 76 7.55 78 190.0 50 12 74 5 40 3286 1.69 50.1 17.5 100
27 1 张泽地0310 4.02 76 7.55 78 240.0 80 5 64 12 80 4483 1.71 58.4 20.0 100
28 1 张智贤0318 3.57 78 7.89 76 220.0 72 9 70 11 76 4254 1.66 54.8 19.9 100
29 1 赵博翰101x 4.16 70 8.19 72 212.0 68 27 100 7 60 3498 1.69 68.0 23.8 80
30 1 赵泽凯0311 4.01 76 7.89 76 213.0 68 5 64 11 76 4322 1.74 55.9 18.5 100
31 1 赵泽宇0616 4.08 74 8.21 72 208.0 66 19 85 20 100 3917 1.66 51.9 18.8 100
32 1 左晶川1217 4.06 74 8.71 66 206.0 64 11 74 4 30 3970 1.72 47.8 16.2 80
34 2 贾和0633 4.22 68 7.97 74 215.0 70 9 70 9 68 3865 1.75 58.7 19.2 100
35 2 李森0636 0.00 0 0.00 0 0.0 0 0 50 0 0 0 0.00 0.0 NaN 0
36 2 李一帆1812 4.46 50 8.79 66 172.0 10 7 68 1 0 4750 1.74 88.6 29.3 60
37 2 李子阳0618 4.01 76 7.37 85 210.0 66 2 60 7 60 4714 1.82 62.5 18.9 100
38 2 吕星繁0312 0.00 0 0.00 0 0.0 0 0 50 0 0 0 0.00 0.0 NaN 0
39 2 赵凌云105x 4.13 72 7.77 76 208.0 66 8 70 7 60 4327 1.73 56.0 18.7 100
40 2 赵鹏悦2612 4.27 66 8.80 66 185.0 40 10 72 5 40 4745 1.64 74.8 27.8 60
42 3 宫诚博0612 3.43 85 6.89 100 276.0 100 16 80 12 80 5212 1.84 73.1 21.6 100
43 3 郭亚浩181X 4.04 76 7.25 90 240.0 80 13 76 8 64 4756 1.76 72.0 23.2 100
44 3 郝晓辰0013 3.38 90 7.36 85 246.0 85 22 95 11 76 4433 1.84 62.5 18.5 100
45 3 李国玺2310 4.19 70 8.17 72 220.0 72 18 85 1 0 4438 1.74 72.2 23.8 80
46 3 李一帆1218 4.08 74 7.80 76 227.0 76 15 80 1 0 6033 1.77 85.6 27.3 60
47 3 刘凡1218 4.09 74 8.06 74 208.0 66 10 72 2 10 4106 1.70 68.7 23.8 80
48 3 刘哲垚1217 4.09 74 8.16 72 190.0 50 2 60 6 50 4214 1.67 60.7 21.8 100
49 3 米卓凡241X 4.05 76 8.16 72 200.0 62 13 76 9 68 3857 1.72 51.4 17.4 100
50 3 牛卓凡0614 4.02 76 8.27 72 228.0 76 14 78 12 80 3266 1.62 52.2 19.9 100
51 3 苏仕一1233 4.01 76 8.50 70 215.0 70 6 66 9 68 3578 1.64 49.9 18.6 100
# 统计分析
# 定义需求,画图,对比分析
(data['BMI_score'].value_counts()).plot(kind = 'pie',autopct = '%0.2f%%')
<matplotlib.axes._subplots.AxesSubplot at 0x1a2f4996b70>
(data['BMI_score'].value_counts()).plot(kind = 'bar')

<matplotlib.axes._subplots.AxesSubplot at 0x1a2f45e9080>
data.groupby(['男1000成绩'])['BMI_score'].count().plot(kind = 'bar')

<matplotlib.axes._subplots.AxesSubplot at 0x1a2f4906b70>

sklearn代码18 python自动化处理数据相关推荐

  1. python办公自动化代码_[Python] 自动化办公 邮件操作基础知识及代码(下)

    转载请注明:陈熹 chenx6542@foxmail.com (简书号:半为花间酒) 若公众号内转载请联系公众号:早起Python 这篇文章能学到的主要内容: imbox 收取邮件 poplib 收取 ...

  2. python办公代码_[Python] 自动化办公 docx操作Word基础代码

    转载请注明:陈熹 chenx6542@foxmail.com (简书号:半为花间酒) 若公众号内转载请联系公众号:早起Python 文中的截图均为原创,转载请注明来源 安装 docx 是一个非标准库, ...

  3. python 批量造数据

    1. 数据表结构(postgresql) Table: public.phm_2040tempo_if_mst -- DROP TABLE IF EXISTS public.phm_2040tempo ...

  4. python+mysql插入数据

    mysql数据处理之插入数据 目的 实现数据插入到mysql,比如我们需要插入1w+数据到数据,可以通过这种方式插入,或者也可以将python 自动化的数据,报存到数据库中. 1.连接数据库 impo ...

  5. python随机生成车牌_使用Python自动化获取全国每个城市的车牌代码

    最近有这样一需求,需要获取12123交管查询网站上的全国每个城市对应的城市id和车牌代码.最初的想法是直接用Python写个爬虫,遍历每个城市,然后用Xpath提取DOM节点数据就好了.然而在实际操作 ...

  6. Python自动化小米手环运动数据导出

    捣鼓小米手环,做了个小项目,想导出小米手环的数据显示在Web网页,这里对网上老旧教程进行一波更新换代,还利用Python实现数据导出的自动化(从用户端的角度考虑,原来的教程其交互模式不够优雅,但事实上 ...

  7. python接口自动化参数化_Python读取txt文件数据的方法(用于接口自动化参数化数据)...

    小试牛刀: 1.需要python如何读取文件 2.需要python操作list 3.需要使用split()对字符串进行分割 代码运行截图 : 代码(copy) #encoding=utf-8 #1.r ...

  8. python中tushare数据可以导出嘛_Python与交易策略分析tushare/baostock库介绍(附代码)...

    前言:金融数据中最典型的就是资产价格的涨跌情况.想要分析金融资产的投资策略,第一步就是历史数据的获取.tushare正是为导入历史金融资产数据而开发,它大大方便了用Python进行金融资产交易策略的探 ...

  9. python自动化数据报告_如何:使用Python将实时数据自动化到您的网站

    python自动化数据报告 This tutorial will be helpful for people who have a website that hosts live data on a ...

最新文章

  1. html使用highcharts绘制饼图,html js highcharts绘制圆饼图表
  2. DFA在C#中的实现:过滤敏感词
  3. ContentType大全
  4. 三、oracle 用户管理一
  5. 部分网站为什么上不去_企业网站如何霸占搜索引擎首页
  6. JavaFX 2 GameTutorial第5部分
  7. CodeForces 176B Word Cut(DP)
  8. oracle事务重要属性,Oracle中的事务(2)--属性和隔离级别
  9. php5.5 getter setter,实现了一个PHP5的getter/setter基类的代码
  10. 火狐浏览器Json插件(JSONView)
  11. An工具介绍之形状工具及渐变变形工具
  12. 虚拟示波器---匿名上位机
  13. 解决Can‘t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock‘ (2)
  14. P2617 Dynamic Rankings(带修改主席树)
  15. FinTech头条丨神州信息分布式核心助力广西北部湾银行科技惠民,打造“广西自己的银行”!
  16. python3数据处理(一)-- 解析XML,Excle文件
  17. 采用最大连通域算法对三维医学图像分割结果做后处理
  18. B860AV2.1刷机/救砖
  19. CardView属性简介
  20. 浙江大学pta答案python第四章_浙大PTA-Python题库 编程题第一章(1-1~1-3)题解

热门文章

  1. 初探Javascript模块化开发
  2. 苹果6s上市时间_苹果给6s出“福利”,网友:同期的安卓手机都馋哭了
  3. gearman mysql_gearman mysql持久化
  4. 鼠标移入事件onmouseover、onmouseenter 鼠标移出事件onmouseleave、onmouseout 的区别
  5. margin相关基本知识
  6. Mysql命令行登录和退出
  7. 削减印度零售商利润分成,OPPO和vivo或回防国内市场
  8. X5浏览器支持HTML5吗,腾讯X5 Blink内核 加强H5支持和渲染性能支撑
  9. MYSQL注入-显错注入
  10. 微信小程序|逻辑判断