-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathOptimizer_NBA.py
66 lines (52 loc) · 1.7 KB
/
Optimizer_NBA.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
# -*- coding: utf-8 -*-
"""
Created on Sat Dec 26 13:48:05 2015
@author: lshulgin
"""
from Constants import *
from Optimizer import Optimizer
import os
import pandas as pd
C = 'C'
SG = 'SG'
PG = 'PG'
SF = 'SF'
PF = 'PF'
G = 'G'
F = 'F'
UTIL = 'UTIL'
POSITION_MAP = {
G : [SG, PG],
F : [SF, PF],
UTIL : [C, SG, PG, SF, PF, G, F]
}
class Optimizer_NBA(Optimizer):
def __init__(self, frame):
self._position_map = POSITION_MAP
super(Optimizer_NBA, self).__init__(frame)
class Optimizer_NBA_FanDuel(Optimizer_NBA):
def __init__(self, frame):
self._salary_cap = 60000
self._positions = [C, SG, SG, PG, PG, SF, SF, PF, PF]
super(Optimizer_NBA_FanDuel, self).__init__(frame)
# Can we replace this with an API call?
def _get_salaries(self):
filename = os.path.join(DIR_SALARIES, 'FanDuel NBA Output 25Dec15.csv')
frame = pd.read_csv(filename)
frame[COL_NAME] = map(lambda first, last: "{0} {1}".format(first, last), frame['First Name'], frame['Last Name'])
column_map = {
COL_NAME : COL_NAME,
'Position' : COL_POSITION,
'Team' : COL_TEAM,
'Salary' : COL_SALARY
}
frame.rename(columns = column_map, inplace = True)
return frame[column_map.values()]
class Optimizer_NBA_DraftKings(Optimizer_NBA):
def __init__(self, frame):
self._salary_cap = 50000
self._positions = [C, SG, PG, SF, PF, G, F, UTIL]
super(Optimizer_NBA_DraftKings, self).__init__(frame)
# Can we replace this with an API call?
def _get_salaries(self):
raise Exception("Need to implement DraftKings salaries")