-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathOptimizer_NFL.py
82 lines (62 loc) · 2.28 KB
/
Optimizer_NFL.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
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
# -*- 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
QB = 'QB'
RB = 'RB'
WR = 'WR'
TE = 'TE'
K = 'K'
DST = 'DST'
FLEX = 'FLEX'
POSITION_MAP = {
FLEX : [RB, WR, TE]
}
class Optimizer_NFL(Optimizer):
def __init__(self, frame):
self._position_map = POSITION_MAP
super(Optimizer_NFL, self).__init__(frame)
class Optimizer_NFL_FanDuel(Optimizer_NFL):
def __init__(self, frame):
self._salary_cap = 60000
self._positions = [QB, RB, RB, WR, WR, WR, TE, K, DST]
super(Optimizer_NFL_FanDuel, self).__init__(frame)
# Can we replace this with an API call?
def _get_salaries(self):
dir_input = os.path.join(DIR_ROOT, 'Salaries')
filename_data_fd = os.path.join(dir_input, 'FanDuel NFL Output 27Dec15.csv')
frame = pd.read_csv(filename_data_fd)
# FanDuel insists on calling DST as 'D'
frame[COL_POSITION] = map(lambda x: 'DST' if x == 'D' else x, frame['Position'])
frame[COL_NAME] = map(lambda first, last: first + ' ' + last, frame['First Name'], frame['Last Name'])
column_map = {
COL_NAME : COL_NAME,
COL_POSITION : COL_POSITION,
'Team' : COL_TEAM,
'Salary' : COL_SALARY
}
frame.rename(columns = column_map, inplace = True)
return frame[column_map.values()]
class Optimizer_NFL_DraftKings(Optimizer_NFL):
def __init__(self, frame):
self._salary_cap = 50000
self._positions = [QB, RB, RB, WR, WR, WR, TE, FLEX, DST]
super(Optimizer_NFL_DraftKings, self).__init__(frame)
# Can we replace this with an API call?
def _get_salaries(self):
dir_input = os.path.join(DIR_ROOT, 'Salaries')
filename_data_fd = os.path.join(dir_input, 'DraftKings NFL Output 27Dec15.csv')
frame = pd.read_csv(filename_data_fd)
column_map = {
'Name' : COL_NAME,
'Position' : COL_POSITION,
'teamAbbrev' : COL_TEAM,
'Salary' : COL_SALARY,
}
frame.rename(columns = column_map, inplace = True)
return frame[column_map.values()]