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 [ ]: