In [1]:
import pandas as pd
import datetime
import random
from sqlalchemy import create_engine
import sys
sys.path.append('/Users/wonderui/OneDrive/6_Module_Package')
sys.path.append('/Users/WangRui/OneDrive/6_Module_Package')
import hoop_pwd
pwd = hoop_pwd.password
from nba_seer import *
modules imported
functions defined
In [2]:
# create sql conn and load game stats logs ----------------------
conn = create_engine('mysql+pymysql://root:%s@118.190.202.87:3306/nba_stats' % pwd)
game_stats_logs = pd.read_sql_table('game_stats_logs', conn)
game_stats_logs = game_stats_logs[game_stats_logs['GAME_TYPE'] != 'all_star']
print(str(len(game_stats_logs)) + ' player stats loaded.')
182297 player stats loaded.
In [3]:
# load player list ----------------------
all_players = nba_py.player.PlayerList(season='2017-18').info()
print('players list loaded')
players list loaded
In [4]:
def get_score(row):
player_id = row['PERSON_ID']
game_id = row['GAME_ID']
stats = game_stats_logs[(game_stats_logs['PLAYER_ID'] == player_id) &
(game_stats_logs['GAME_ID'] == game_id)].copy()
#print(stats)
stats['SCO'] = stats['PTS'] * 1 + stats['AST'] * 1.5 + \
stats['OREB'] * 1 + stats['DREB'] * 0.7 + \
stats['STL'] * 2 + stats['BLK'] * 1.8 + stats['TO'] * -1 + \
stats['FGM'] * 0.4 + (stats['FGA'] - stats['FGM']) * -1 + stats['FG3M'] * 0.5
return stats['SCO'].max()
In [5]:
game_date = game_stats_logs['GAME_DATE_EST'].drop_duplicates().apply(lambda x: x[:10])
In [8]:
players = pd.DataFrame()
for i in random.sample(list(game_date), 5):
j = datetime.datetime.strptime(i, "%Y-%m-%d").date()
games = get_games(j)
players = players.append(get_players_p(games, game_stats_logs))
print(str(j) + ' complete!')
else:
print(len(players), ' players total!')
2017-01-01 complete!
2017-01-15 complete!
2013-03-25 complete!
2016-02-11 complete!
2014-12-02 complete!
773 players total!
In [9]:
players['MA_20'] = players.apply(lambda x: get_ma(game_stats_logs, x, 20), axis = 1)
print('ma20 complete!')
players['MA_10'] = players.apply(lambda x: get_ma(game_stats_logs, x, 10), axis = 1)
print('ma10 complete!')
players['MA_5'] = players.apply(lambda x: get_ma(game_stats_logs, x, 5), axis = 1)
print('ma5 complete!')
players['MIN_20'] = players.apply(lambda x: get_min(game_stats_logs, x, 20), axis = 1)
print('min20 complete!')
players['MIN_10'] = players.apply(lambda x: get_min(game_stats_logs, x, 10), axis = 1)
print('min10 complete!')
players['MIN_5'] = players.apply(lambda x: get_min(game_stats_logs, x, 5), axis = 1)
print('min5 complete!')
players['MIN_COV_20'] = players.apply(lambda x: get_min_cov(game_stats_logs, x, 20), axis = 1)
print('min_cov_20 complete!')
players['SCO_COV_20'] = players.apply(lambda x: get_sco_cov(game_stats_logs, x, 20), axis = 1)
print('sco_cov_20 complete!')
players['EXP_SCO'] = round(players[['MA_20', 'MA_10', 'MA_5']].mean(axis = 1) *
players[['MIN_20', 'MIN_10', 'MIN_5']].mean(axis = 1) / 36, 2)
players['ACT_SCO'] = players.apply(get_score, axis = 1)
players['SCO_DIFF'] = players['EXP_SCO'] - players['ACT_SCO']
ma20 complete!
ma10 complete!
ma5 complete!
min20 complete!
min10 complete!
min5 complete!
min_cov_20 complete!
sco_cov_20 complete!
Out[9]:
PERSON_ID
TEAM_ID
Location
GAME_ID
Against_Team_ID
MA_20
MA_10
MA_5
MIN_20
MIN_10
MIN_5
MIN_COV_20
SCO_COV_20
EXP_SCO
ACT_SCO
SCO_DIFF
0
200757
1610612737
HOME
0021600508
1610612759
19.66
20.88
21.07
27.23
28.73
27.36
0.180
0.447
15.84
7.0
8.84
1
200794
1610612737
HOME
0021600508
1610612759
28.27
27.60
20.79
34.16
35.38
35.94
0.157
0.387
24.96
40.2
-15.24
2
2730
1610612737
HOME
0021600508
1610612759
33.48
37.92
41.48
29.78
29.85
31.85
0.193
0.436
31.87
12.9
18.97
3
203145
1610612737
HOME
0021600508
1610612759
14.78
14.24
13.41
27.29
28.12
31.27
0.276
0.786
11.35
8.4
2.95
4
203471
1610612737
HOME
0021600508
1610612759
29.33
29.79
25.91
31.90
34.25
33.41
0.170
0.329
26.13
23.6
2.53
5
2594
1610612737
HOME
0021600508
1610612759
17.28
20.95
19.99
28.09
27.52
27.58
0.188
0.495
14.95
26.4
-11.45
6
1627098
1610612737
HOME
0021600508
1610612759
13.06
11.39
7.44
15.93
16.08
16.55
0.341
0.973
4.78
7.6
-2.82
7
203488
1610612737
HOME
0021600508
1610612759
19.68
20.69
22.90
20.75
18.85
20.47
0.250
0.586
11.73
5.4
6.33
8
203501
1610612737
HOME
0021600508
1610612759
18.24
18.59
21.21
21.89
23.13
17.31
0.369
1.058
11.17
38.7
-27.53
9
2743
1610612737
HOME
0021600508
1610612759
18.45
29.07
36.33
11.28
11.20
13.82
0.584
0.981
9.39
2.4
6.99
10
1627761
1610612737
HOME
0021600508
1610612759
6.02
5.85
22.24
8.72
11.14
18.11
0.765
2.838
4.00
NaN
NaN
11
203527
1610612737
HOME
0021600508
1610612759
23.87
23.39
23.39
5.71
7.85
7.85
0.324
0.570
4.67
NaN
NaN
12
202695
1610612759
AWAY
0021600508
1610612737
34.17
37.90
41.20
33.23
31.91
34.47
0.116
0.274
34.82
14.9
19.92
13
200746
1610612759
AWAY
0021600508
1610612737
26.61
29.21
30.52
31.93
30.16
31.92
0.149
0.407
25.05
43.7
-18.65
14
2200
1610612759
AWAY
0021600508
1610612737
28.73
32.28
29.82
27.20
27.18
26.84
0.159
0.294
22.77
27.3
-4.53
15
201980
1610612759
AWAY
0021600508
1610612737
17.64
19.48
18.74
26.28
26.62
29.16
0.180
0.453
14.15
13.9
0.25
16
2225
1610612759
AWAY
0021600508
1610612737
22.80
24.98
21.54
25.40
25.25
26.83
0.124
0.541
16.58
30.4
-13.82
17
203937
1610612759
AWAY
0021600508
1610612737
25.23
19.45
22.25
11.22
13.87
16.21
0.715
1.374
8.53
1.2
7.33
18
201988
1610612759
AWAY
0021600508
1610612737
26.75
25.91
21.60
22.14
20.23
20.11
0.202
0.530
14.32
4.8
9.52
19
101135
1610612759
AWAY
0021600508
1610612737
25.61
26.46
30.05
18.25
18.83
16.97
0.266
0.420
13.70
8.0
5.70
20
1938
1610612759
AWAY
0021600508
1610612737
26.27
27.87
37.98
19.25
18.49
18.70
0.151
0.606
16.05
19.9
-3.85
21
203473
1610612759
AWAY
0021600508
1610612737
25.59
27.73
26.12
14.52
16.05
17.04
0.454
0.540
11.67
-0.6
12.27
22
203613
1610612759
AWAY
0021600508
1610612737
17.96
16.34
15.92
17.57
18.13
21.37
0.346
0.684
8.85
6.7
2.15
23
202722
1610612759
AWAY
0021600508
1610612737
12.23
7.68
4.07
9.69
7.59
3.84
0.732
1.194
1.56
NaN
NaN
24
1627749
1610612759
AWAY
0021600508
1610612737
19.35
35.13
45.03
5.13
6.38
7.94
1.115
1.446
5.97
NaN
NaN
25
203585
1610612748
HOME
0021600509
1610612765
13.28
12.08
13.67
30.68
27.21
26.18
0.228
0.460
10.13
9.3
0.83
26
202337
1610612748
HOME
0021600509
1610612765
11.10
11.80
14.79
14.44
11.83
13.87
0.464
0.980
4.67
10.3
-5.63
27
203186
1610612748
HOME
0021600509
1610612765
25.50
24.03
33.95
11.22
9.69
11.68
0.366
0.526
8.40
10.0
-1.60
28
201961
1610612748
HOME
0021600509
1610612765
17.84
16.47
14.10
27.38
22.96
20.37
0.317
0.526
10.57
22.1
-11.53
29
1626196
1610612748
HOME
0021600509
1610612765
19.10
17.68
23.48
32.37
34.21
34.92
0.148
0.561
18.88
23.7
-4.82
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
228
203998
1610612761
AWAY
0021400261
1610612758
15.15
17.11
26.10
13.45
13.07
12.00
0.080
0.602
6.94
NaN
NaN
229
202361
1610612761
AWAY
0021400261
1610612758
9.20
9.27
0.00
4.76
4.14
0.05
0.979
2.480
0.51
NaN
NaN
230
101236
1610612761
AWAY
0021400261
1610612758
13.84
20.44
20.46
10.22
10.77
10.46
0.404
0.988
5.31
NaN
NaN
231
201880
1610612761
AWAY
0021400261
1610612758
17.50
20.46
24.00
10.52
6.38
1.50
0.649
0.588
3.52
NaN
NaN
232
203084
1610612744
HOME
0021400262
1610612753
18.54
20.53
16.90
29.39
31.53
31.41
0.180
0.388
15.95
25.6
-9.65
233
203110
1610612744
HOME
0021400262
1610612753
24.16
24.55
21.74
29.48
30.71
32.91
0.216
0.356
20.24
16.8
3.44
234
101106
1610612744
HOME
0021400262
1610612753
30.72
35.93
32.40
25.40
23.59
23.28
0.304
0.323
22.09
29.3
-7.21
235
202691
1610612744
HOME
0021400262
1610612753
28.27
27.57
22.03
32.54
32.58
34.18
0.154
0.405
23.87
31.9
-8.03
236
201939
1610612744
HOME
0021400262
1610612753
40.08
41.06
45.78
32.46
31.00
31.91
0.133
0.366
37.36
24.3
13.06
237
2738
1610612744
HOME
0021400262
1610612753
17.62
16.05
16.15
25.74
25.79
26.56
0.214
0.679
12.01
11.4
0.61
238
201578
1610612744
HOME
0021400262
1610612753
34.18
40.80
36.60
15.29
18.22
20.62
0.357
0.416
18.64
13.1
5.54
239
2571
1610612744
HOME
0021400262
1610612753
23.76
24.76
26.89
14.78
12.27
7.48
0.412
0.428
8.04
1.0
7.04
240
2733
1610612744
HOME
0021400262
1610612753
16.10
18.61
21.22
16.02
17.22
17.45
0.369
0.640
8.75
5.5
3.25
241
203105
1610612744
HOME
0021400262
1610612753
22.27
17.31
13.22
9.30
9.76
8.95
0.386
0.581
4.56
NaN
NaN
242
203200
1610612744
HOME
0021400262
1610612753
10.65
-2.31
6.00
8.61
6.48
3.39
0.657
1.768
0.82
NaN
NaN
243
203136
1610612744
HOME
0021400262
1610612753
11.41
4.53
5.95
9.32
5.15
2.42
0.855
0.951
1.14
NaN
NaN
244
201575
1610612744
HOME
0021400262
1610612753
3.06
3.01
7.65
9.48
10.50
14.74
0.552
2.681
1.47
NaN
NaN
245
202699
1610612753
AWAY
0021400262
1610612744
23.90
28.63
22.99
35.29
34.72
31.78
0.098
0.385
23.73
23.1
0.63
246
101112
1610612753
AWAY
0021400262
1610612744
14.70
14.23
9.83
32.27
31.05
30.08
0.178
0.482
11.17
12.6
-1.43
247
203124
1610612753
AWAY
0021400262
1610612744
28.99
28.15
30.05
22.83
21.33
17.83
0.263
0.326
16.68
31.1
-14.42
248
203095
1610612753
AWAY
0021400262
1610612744
18.22
13.58
10.38
33.49
33.87
33.30
0.134
0.502
13.10
11.7
1.40
249
203506
1610612753
AWAY
0021400262
1610612744
18.69
19.95
22.15
28.98
30.69
32.99
0.196
0.443
17.39
39.3
-21.91
250
203473
1610612753
AWAY
0021400262
1610612744
21.69
18.11
29.23
8.51
8.45
13.14
0.522
0.699
6.41
4.8
1.61
251
203901
1610612753
AWAY
0021400262
1610612744
21.29
23.74
24.21
23.94
20.16
22.91
0.297
0.456
14.32
19.3
-4.98
252
2584
1610612753
AWAY
0021400262
1610612744
11.50
7.77
4.05
16.10
19.92
20.26
0.492
0.803
4.05
-2.9
6.95
253
2732
1610612753
AWAY
0021400262
1610612744
12.87
11.85
16.62
15.74
13.21
15.93
0.435
1.247
5.73
3.9
1.83
254
203090
1610612753
AWAY
0021400262
1610612744
14.13
9.64
12.73
18.37
18.61
21.93
0.386
0.804
6.64
NaN
NaN
255
203094
1610612753
AWAY
0021400262
1610612744
14.18
18.07
4.30
8.48
7.28
8.60
0.829
1.440
2.75
NaN
NaN
256
2557
1610612753
AWAY
0021400262
1610612744
17.52
19.27
19.91
16.84
11.67
6.14
0.391
0.724
6.06
NaN
NaN
257
202696
1610612753
AWAY
0021400262
1610612744
27.34
26.80
26.01
35.02
33.92
33.34
0.105
0.309
25.30
NaN
NaN
773 rows × 16 columns
In [33]:
players.sort_values('SCO_COV_20')
Out[33]:
PERSON_ID
TEAM_ID
Location
GAME_ID
Against_Team_ID
MA_20
MA_10
MA_5
MIN_20
MIN_10
MIN_5
MIN_COV_20
SCO_COV_20
EXP_SCO
ACT_SCO
SCO_DIFF
63
1627777
1610612754
HOME
0021600510
1610612753
-0.57
-3.54
NaN
4.83
3.05
NaN
1.000
-38.139
-0.22
-1.0
0.78
101
1627774
1610612757
AWAY
0021600511
1610612750
-0.56
-6.68
-7.83
5.01
4.46
2.61
0.757
-27.233
-0.56
NaN
NaN
49
2570
1610612740
AWAY
0021500802
1610612760
-0.75
-11.86
NaN
5.12
6.07
NaN
0.262
-20.924
-0.98
NaN
NaN
47
1627740
1610612765
AWAY
0021600509
1610612748
-2.90
-0.32
-23.16
4.30
4.62
3.35
0.460
-9.877
-1.00
NaN
NaN
1
202344
1610612764
HOME
0021201048
1610612763
-21.28
19.82
18.11
16.71
19.55
21.47
0.447
-8.207
2.97
21.0
-18.03
142
1627835
1610612741
AWAY
0021600611
1610612763
-1.08
-0.99
0.78
10.85
15.00
21.30
1.077
-7.961
-0.19
3.2
-3.39
128
101111
1610612742
AWAY
0021400257
1610612741
-18.69
20.10
20.95
6.34
6.13
5.92
0.733
-7.006
1.27
NaN
NaN
100
203909
1610612745
AWAY
0021600609
1610612751
-4.32
-6.21
-24.32
3.38
3.65
1.48
0.739
-3.259
-0.92
9.0
-9.92
39
203076
1610612740
AWAY
0021500802
1610612760
33.90
33.82
37.11
34.40
34.87
36.23
0.279
0.194
34.13
28.3
5.83
103
203991
1610612745
AWAY
0021600609
1610612751
32.13
33.57
33.62
25.19
20.75
18.56
0.221
0.197
19.77
NaN
NaN
25
201142
1610612760
HOME
0021500802
1610612740
37.28
38.45
40.50
36.76
38.17
38.44
0.102
0.202
40.67
30.6
10.07
29
201566
1610612760
HOME
0021500802
1610612740
40.03
41.22
42.50
34.45
36.71
36.91
0.185
0.213
41.28
40.8
0.48
120
200768
1610612761
AWAY
0021600512
1610612747
36.55
36.47
39.93
36.19
36.44
37.12
0.087
0.218
38.26
57.9
-19.64
141
201142
1610612760
AWAY
0021400258
1610612740
33.10
35.19
NaN
37.53
31.98
NaN
0.285
0.219
32.96
23.2
9.76
223
200768
1610612761
AWAY
0021400261
1610612758
31.28
32.19
31.64
32.45
34.64
35.99
0.160
0.224
30.26
43.8
-13.54
39
2544
1610612748
AWAY
0021201049
1610612753
41.13
41.43
48.70
37.94
36.86
38.49
0.115
0.241
45.90
42.7
3.20
24
201188
1610612763
AWAY
0021201048
1610612764
27.96
26.85
22.97
37.16
38.26
38.74
0.100
0.256
27.41
NaN
NaN
105
200794
1610612762
HOME
0021201052
1610612755
29.62
28.11
28.76
29.39
28.46
28.36
0.232
0.259
23.01
25.2
-2.19
154
2548
1610612741
AWAY
0021600611
1610612763
27.25
26.12
28.83
30.01
29.81
32.73
0.154
0.265
23.48
NaN
NaN
55
201952
1610612754
HOME
0021600510
1610612753
31.04
31.98
30.32
32.11
33.84
33.80
0.162
0.268
28.74
26.7
2.04
12
202695
1610612759
AWAY
0021600508
1610612737
34.17
37.90
41.20
33.23
31.91
34.47
0.116
0.274
34.82
14.9
19.92
15
101162
1610612764
AWAY
0021500801
1610612749
28.46
30.45
27.78
31.82
29.79
30.14
0.117
0.275
24.55
19.2
5.35
146
202704
1610612760
AWAY
0021400258
1610612740
25.65
27.49
29.07
38.18
36.78
33.95
0.117
0.276
27.63
21.2
6.43
134
201144
1610612763
HOME
0021600611
1610612741
30.64
31.64
31.52
31.45
34.35
37.37
0.190
0.277
29.87
42.6
-12.73
81
201937
1610612750
HOME
0021600511
1610612757
24.23
26.75
29.66
31.48
33.54
31.48
0.159
0.278
24.02
9.0
15.02
119
203500
1610612760
AWAY
0021600610
1610612758
29.32
27.92
24.27
30.03
31.69
33.48
0.138
0.278
23.95
7.8
16.15
90
202349
1610612740
HOME
0021201051
1610612743
25.71
24.12
24.81
35.35
36.88
35.70
0.117
0.278
24.86
NaN
NaN
131
101135
1610612744
HOME
0021201053
1610612747
27.76
26.94
26.31
35.37
33.60
32.36
0.141
0.281
25.34
28.9
-3.56
5
202328
1610612749
HOME
0021500801
1610612764
33.21
33.84
34.49
30.22
30.82
32.32
0.101
0.283
29.26
17.7
11.56
67
201143
1610612737
AWAY
0021201050
1610612754
32.68
26.90
31.04
38.58
39.14
40.98
0.115
0.284
33.20
18.4
14.80
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
76
204014
1610612753
AWAY
0021600510
1610612754
7.94
10.43
-3.62
6.40
7.11
5.92
0.577
2.703
0.88
NaN
NaN
139
203145
1610612744
HOME
0021201053
1610612747
15.08
34.57
42.43
3.53
4.97
5.89
0.853
2.740
4.09
0.0
4.09
152
203477
1610612741
AWAY
0021600611
1610612763
5.09
9.47
14.21
10.64
6.98
9.34
0.740
2.749
2.39
NaN
NaN
90
1626191
1610612751
HOME
0021600609
1610612745
10.60
7.89
0.14
5.86
4.70
5.36
0.597
2.757
0.92
3.4
-2.48
10
1627761
1610612737
HOME
0021600508
1610612759
6.02
5.85
22.24
8.72
11.14
18.11
0.765
2.838
4.00
NaN
NaN
35
203956
1610612760
HOME
0021500802
1610612740
9.63
31.57
0.00
2.81
2.23
1.18
0.419
2.900
0.79
7.2
-6.41
164
1627826
1610612747
HOME
0021600612
1610612765
7.48
19.68
37.31
7.92
9.17
8.52
0.883
2.933
5.10
10.7
-5.60
113
203946
1610612741
HOME
0021400257
1610612742
6.49
13.73
20.59
6.39
8.76
10.38
1.106
3.147
3.22
NaN
NaN
102
201628
1610612745
AWAY
0021600609
1610612751
16.74
33.33
111.89
3.32
2.28
1.48
0.484
3.227
3.54
-1.5
5.04
75
203101
1610612749
AWAY
0021600607
1610612737
6.33
9.23
4.29
4.32
2.99
3.15
0.681
3.246
0.64
0.7
-0.06
62
1626202
1610612754
HOME
0021600510
1610612753
9.15
-11.80
NaN
5.75
3.05
NaN
0.593
3.347
-0.16
0.0
-0.16
73
202714
1610612737
AWAY
0021201050
1610612754
5.59
8.82
15.02
3.96
5.68
3.68
0.970
3.727
1.21
17.0
-15.79
47
202337
1610612740
AWAY
0021500802
1610612760
2.33
5.91
17.72
5.40
7.54
14.63
1.000
3.745
2.21
4.4
-2.19
190
203462
1610612756
HOME
0021400260
1610612754
6.68
10.35
-6.18
7.46
7.90
7.26
0.762
3.861
0.76
2.1
-1.34
51
2756
1610612752
AWAY
0021600606
1610612761
3.95
10.81
32.33
9.60
15.89
9.80
0.975
3.887
5.13
13.5
-8.37
11
203510
1610612742
HOME
0021600608
1610612750
5.59
5.59
4.24
10.18
10.18
7.09
0.575
4.176
1.31
0.0
1.31
177
1627740
1610612765
AWAY
0021600612
1610612747
6.58
1.59
18.09
4.96
4.65
5.52
0.318
4.272
1.23
NaN
NaN
139
203893
1610612740
HOME
0021400258
1610612760
8.03
-2.19
-20.92
6.74
5.19
3.66
0.617
4.284
-0.73
NaN
NaN
5
201858
1610612764
HOME
0021201048
1610612763
6.13
3.57
12.71
13.54
12.04
17.64
0.721
4.324
2.99
9.4
-6.41
23
1626145
1610612750
AWAY
0021600608
1610612742
7.78
12.13
37.78
3.60
6.36
11.15
1.150
4.523
3.76
-2.0
5.76
115
1627826
1610612747
HOME
0021600512
1610612761
3.26
-8.93
2.06
8.13
7.33
9.82
0.784
5.010
-0.28
NaN
NaN
191
203898
1610612756
HOME
0021400260
1610612754
3.08
3.07
6.37
7.91
8.48
10.93
0.531
5.430
1.06
-0.5
1.56
153
202721
1610612747
AWAY
0021201053
1610612744
3.63
-12.86
-25.71
3.25
1.81
2.80
0.574
6.534
-0.85
NaN
NaN
48
1740
1610612748
AWAY
0021201049
1610612753
1.22
-1.45
1.82
7.20
6.19
9.13
0.835
7.667
0.11
12.8
-12.69
58
201858
1610612765
HOME
0021400255
1610612747
2.90
3.32
-8.04
16.08
16.79
7.77
0.656
11.113
-0.23
-4.0
3.77
24
204067
1610612764
AWAY
0021500801
1610612749
2.31
-11.53
-39.80
3.52
2.21
1.04
0.968
15.360
-1.02
NaN
NaN
37
2045
1610612753
HOME
0021201049
1610612748
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
49
436
1610612748
AWAY
0021201049
1610612753
64.21
64.21
64.21
3.42
3.42
3.42
NaN
NaN
6.10
-2.0
8.10
128
2198
1610612755
AWAY
0021201052
1610612762
7.90
NaN
NaN
6.38
NaN
NaN
NaN
NaN
1.40
NaN
NaN
153
203511
1610612760
AWAY
0021400258
1610612740
4.58
4.58
4.58
8.65
8.65
8.65
NaN
NaN
1.10
NaN
NaN
773 rows × 16 columns
In [10]:
players['SCO_DIFF'].describe()
Out[10]:
count 639.000000
mean -1.007387
std 9.187517
min -33.430000
25% -6.410000
50% -0.030000
75% 4.700000
max 31.120000
Name: SCO_DIFF, dtype: float64
In [50]:
cov_diff = pd.DataFrame()
#cov_diff['cov'] = abs(players[['MIN_COV_20', 'SCO_COV_20']].mean(axis = 1))
cov_diff['cov'] = abs(players['MIN_COV_20'] * players['SCO_COV_20'])
cov_diff['diff'] = players['SCO_DIFF']
cov_diff.sort_values('cov')
Out[50]:
cov
diff
194
0.001008
5.18
120
0.018966
-19.64
51
0.020368
5.32
25
0.020604
10.07
89
0.025134
NaN
24
0.025600
NaN
39
0.027715
3.20
5
0.028583
11.56
15
0.029133
11.60
121
0.029388
31.12
95
0.030030
8.27
30
0.030488
3.73
1
0.030504
17.30
106
0.031086
-8.31
43
0.031350
-4.59
12
0.031784
19.92
15
0.032175
5.35
121
0.032224
-14.51
146
0.032292
6.43
257
0.032445
NaN
90
0.032526
NaN
67
0.032660
14.80
80
0.032800
13.56
94
0.034026
-30.68
119
0.034056
-0.73
144
0.034600
11.48
29
0.034832
6.39
168
0.034960
-15.19
170
0.035424
9.60
223
0.035840
-13.54
...
...
...
42
2.404980
-2.00
100
2.408401
-9.92
229
2.427920
NaN
164
2.589839
-5.60
139
2.643228
NaN
191
2.883330
1.56
190
2.942082
-1.34
5
3.117604
-6.41
113
3.480582
NaN
73
3.615190
-15.79
1
3.668529
-18.03
47
3.745000
-2.19
153
3.750516
NaN
51
3.789825
-8.37
115
3.927840
NaN
47
4.543420
NaN
115
5.131933
NaN
128
5.135398
NaN
23
5.201450
5.76
49
5.482088
NaN
48
6.401945
-12.69
58
7.290128
3.77
142
8.573997
-3.39
24
14.868480
NaN
101
20.615381
NaN
63
38.139000
0.78
37
NaN
NaN
49
NaN
8.10
128
NaN
NaN
153
NaN
NaN
773 rows × 2 columns
In [34]:
%matplotlib inline
cov_diff[cov_diff['cov'] < 0.25].plot(x='cov', y='diff', kind='scatter', grid=True, figsize=(10, 7))
Out[34]:
<matplotlib.axes._subplots.AxesSubplot at 0x10f6daf28>
In [35]:
cov_diff['cov'].corr(cov_diff['diff'])
Out[35]:
-0.085101461907195336
In [58]:
import numpy as np
import scipy.stats as stats
import pylab as pl
h = cov_diff['diff'][cov_diff['diff'].notnull()].apply(lambda x: round(x)).sort_values()
In [69]:
h.value_counts()
Out[69]:
2 40
1 34
0 33
3 31
-2 29
4 29
-3 28
-5 26
6 26
5 24
-6 23
-7 21
-4 20
7 20
-1 20
-9 19
-13 15
-8 15
-10 14
-14 14
11 13
10 12
12 11
8 11
9 11
15 9
-17 8
-11 7
-12 7
-15 7
13 7
-18 7
14 6
16 6
-22 4
-19 4
-28 3
-16 3
-24 3
17 3
-23 2
-31 2
20 2
18 2
-20 1
-25 1
-30 1
31 1
-33 1
24 1
21 1
19 1
Name: diff, dtype: int64
In [ ]:
Content source: wonderui/Hoop_Fantasy
Similar notebooks: