def __init__(self, db=None, cache_name='nbacom-agent', cookies=None, table_names=None): ''' Args: db (NBAPostgres): instance cache_name (str): for scraper cache_name cookies: cookie jar table_names (dict): Database table names ''' logging.getLogger(__name__).addHandler(logging.NullHandler()) self.scraper = NBAComScraper(cache_name=cache_name, cookies=cookies) self.parser = NBAComParser() self.db = db if table_names: self.table_names = table_names else: self.table_names = { 'pgl': 'player_gamelogs', 'tgl': 'team_gamelogs', 'seas': 'season', 'pl': 'player', 'ps': 'playerstats_daily', 'ts': 'teamstats_daily', 'tod': 'team_opponent_dashboard', 'pbs': 'player_boxscores_combined', 'tbs': 'team_boxscores_combined', 'box2': 'game_boxscores', 'tm': 'team' }
def __init__(self, db=None): logging.getLogger(__name__).addHandler(logging.NullHandler()) self._dk_players = [] self.scraper = NBAComScraper() self.parser = NBAComParser() if db: self.nbadb = db
def __init__(self, db=None, cache_name=None, cookies=None): ''' Arguments: cache_name: str for scraper cache_name cookies: cookie jar db: NBAComPg instance ''' self.scraper = NBAComScraper(cache_name=cache_name, cookies=cookies) self.parser = NBAComParser() if db: self.db = db self.insert_db = True else: self.insert_db = False
def __init__(self, db=None, cache_name=None, cookies=None): ''' Arguments: cache_name: str for scraper cache_name cookies: cookie jar db: NBAComPg instance ''' logging.getLogger(__name__).addHandler(logging.NullHandler()) self.scraper = NBAComScraper(cache_name=cache_name, cookies=cookies) self.parser = NBAComParser() if db: self.db = db self.insert_db = True else: self.insert_db = False
def setUp(self): logging.getLogger(__name__).addHandler(logging.NullHandler()) self.nbs = NBAComScraper() self.nbp = NBAComParser()
def load_data(per_mode, playerpool_size, thresh_gp, thresh_min, lastn=0, season_code=None, sortcol=None, fn=None): ''' Loads data from nba.com or csv file Args: per_mode (str): 'Totals', 'PerGame', 'Per48' playerpool_size (int): number of players in pool thresh_gp (int): minimum number of games played thresh_min (int): minimum number of minutes played lastn (int): last number of games, default 0 season_code (str): '2017-18', etc., default None sortcol (str): sort, default None fn (str): filename of csv, default None Returns: DataFrame ''' if fn: df = pd.read_csv(fn) else: scraper = NBAComScraper(cache_name='fbasim') parser = NBAComParser() if not season_code: season_code = current_season_code() content = scraper.playerstats(season_code, per_mode, lastn) df = pd.DataFrame(parser.playerstats(content, per_mode)) df['MIN'] = df['MIN'].astype(int) df = df.rename(index=str, columns={"TEAM_ABBREVIATION": "TEAM"}) # account for gp & minutes thresholds if thresh_gp and thresh_min: crit = (df.GP >= thresh_gp) & (df.MIN >= thresh_min) nthresh = len(df[crit]) if nthresh > playerpool_size: df = df[crit][0:playerpool_size] else: df = df[crit] elif thresh_gp: crit = df.GP >= thresh_gp nthresh = len(df[crit]) if nthresh > playerpool_size: df = df[0:playerpool_size] else: df = df[crit] elif thresh_min: crit = df.MIN >= thresh_min nthresh = len(df[crit]) if nthresh > playerpool_size: df = df[0:playerpool_size] else: df = df[crit] # need index for joins in the sim df.set_index('PLAYER_ID') if sortcol: return df.sort_values(sortcol, ascending=False) else: return df