def add_win_percentage(entire_schedule): teams = [ 'ATL','BRK','BOS','CHO','CHI','CLE','DAL','DEN', 'DET','GSW','HOU','IND','LAC','LAL','MEM','MIA', 'MIL','MIN','NOP','NYK','OKC','ORL','PHI','PHO', 'POR','SAC','SAS','TOR','UTA','WAS'] init = [0] * 30 data = {'wins' : init, 'losses' : init} injury_report = get_injury_report() win_loss = pd.DataFrame(data, index=teams) home_win_percentage = [] visitor_win_percentage = [] for index, row in entire_schedule.iterrows(): if (win_loss.loc[row['HOME'], 'wins'] + win_loss.loc[row['HOME'], 'losses']) == 0: if win_loss.loc[row['HOME'], 'wins'] > 0: home_win_per = 1 else: home_win_per = 0 else: home_wins = win_loss.loc[row['HOME'], 'wins'] if get_first_no_result_date(entire_schedule) == row['DATE']: injury_account = get_missing_win_shares(injury_report, row['HOME']) home_wins += injury_account home_win_per = home_wins / (win_loss.loc[row['HOME'], 'wins'] + win_loss.loc[row['HOME'], 'losses']) if (win_loss.loc[row['VISITOR'], 'wins'] + win_loss.loc[row['VISITOR'], 'losses']) == 0: if win_loss.loc[row['VISITOR'], 'wins'] > 0: visitor_win_per = 1 else: visitor_win_per = 0 else: visitor_wins = win_loss.loc[row['VISITOR'], 'wins'] if get_first_no_result_date(entire_schedule) == row['DATE']: injury_account = get_missing_win_shares(injury_report, row['VISITOR']) visitor_wins += injury_account visitor_win_per = visitor_wins / (win_loss.loc[row['VISITOR'], 'wins'] + win_loss.loc[row['VISITOR'], 'losses']) home_win_percentage.insert(index, home_win_per) visitor_win_percentage.insert(index, visitor_win_per) if row['WINNER'] == 1: win_loss.at[row['HOME'],'wins'] = win_loss.loc[row['HOME'],'wins'] + 1 win_loss.at[row['VISITOR'],'losses'] = win_loss.loc[row['VISITOR'],'losses'] + 1 elif row['WINNER'] == 0: win_loss.at[row['VISITOR'],'wins'] = win_loss.loc[row['VISITOR'],'wins'] + 1 win_loss.at[row['HOME'],'losses'] = win_loss.loc[row['HOME'],'losses'] + 1 entire_schedule["HOME_W%"] = home_win_percentage entire_schedule["VISITOR_W%"] = visitor_win_percentage return entire_schedule
s = get_schedule(2018, playoffs=False) print(s) s = get_standings(date='2020-01-06') print(s) from basketball_reference_scraper.box_scores import get_box_scores s = get_box_scores('2020-01-13', 'CHI', 'BOS', period='GAME', stat_type='BASIC') print(s) from basketball_reference_scraper.pbp import get_pbp s = get_pbp('2020-01-13', 'CHI', 'BOS') print(s) from basketball_reference_scraper.shot_charts import get_shot_chart s = get_shot_chart('2020-01-13', 'CHI', 'BOS') print(s) from basketball_reference_scraper.injury_report import get_injury_report s = get_injury_report() print(s)
def test_injury_report(self): df = get_injury_report() expected_columns = [ 'PLAYER', 'TEAM', 'DATE', 'INJURY', 'STATUS', 'DESCRIPTION' ] self.assertCountEqual(list(df.columns), expected_columns)