def basicOrAdvancedStatStandardDeviation(startDate, endDate, stat, statType='Base', season='2018-19'): time.sleep(.2) # Gets list of dictionaries with stats for every team allTeamsInfo = leaguedashteamstats.LeagueDashTeamStats( per_mode_detailed='Per100Possessions', measure_type_detailed_defense=statType, date_from_nullable=startDate, date_to_nullable=endDate, season=season, headers=customHeaders, timeout=120) allTeamsDict = allTeamsInfo.get_normalized_dict() allTeamsList = allTeamsDict['LeagueDashTeamStats'] specificStatAllTeams = [] for i in range( len(allTeamsList) ): # Loops and appends specific stat to new list until every team's stat has been added specificStatAllTeams.append(allTeamsList[i][stat]) standardDeviation = statistics.stdev( specificStatAllTeams) # Finds standard deviation of stat return standardDeviation
def srednia_dla_statystyk(data_startowa, data_koncowa, statystyka, typ_statystyki='Base', sezon='2018-19'): time.sleep(.2) # Pobieranie listy słowników ze statystykami każdej drużyny w celu wyliczenia średniej statystyki_wszystkich_druzyn = leaguedashteamstats.LeagueDashTeamStats( per_mode_detailed='Per100Possessions', measure_type_detailed_defense=typ_statystyki, date_from_nullable=data_startowa, date_to_nullable=data_koncowa, season=sezon, headers=headers, timeout=120) statystyki_wszystkich_druzyn_slownik = statystyki_wszystkich_druzyn.get_normalized_dict( ) statystyki_wszystkich_druzyn_tablica = statystyki_wszystkich_druzyn_slownik[ 'LeagueDashTeamStats'] # Rozdzielenie tablicy wszystkich statystyk na pojedyńcze rozdzielone_statystyki_druzyn = [] for i in range(len(statystyki_wszystkich_druzyn_tablica)): rozdzielone_statystyki_druzyn.append( statystyki_wszystkich_druzyn_tablica[i][statystyka]) srednie_statystyki = statistics.mean(rozdzielone_statystyki_druzyn) return srednie_statystyki
def update_team_season_totals(season): full_season = format_season(season) print(f"Fetching team stat totals for {full_season}...") totals_response = leaguedashteamstats.LeagueDashTeamStats( season=full_season) primary_keys = ["SEASON", "TEAM_ID"] extra_values = [("SEASON", full_season)] update_data_table_from_stats_response("team_season_totals", totals_response, primary_keys, extra_values)
def update_opponent_season_totals(season): full_season = format_season(season) print(f"Fetching opponent stat totals for {full_season}...") totals_response = leaguedashteamstats.LeagueDashTeamStats( measure_type_detailed_defense=MeasureTypeSimple.opponent, season=full_season) primary_keys = ["SEASON", "TEAM_ID"] extra_values = [("SEASON", full_season)] update_data_table_from_stats_response("opponent_season_totals", totals_response, primary_keys, extra_values)
def update_team_last_totals(last_range): current_season = get_current_season_full() print(f"Fetching team stat totals for last {last_range}...") date_from = get_date_from_last_range(last_range) totals_response = leaguedashteamstats.LeagueDashTeamStats( season=current_season, date_from_nullable=date_from, ) primary_keys = ["TEAM_ID"] update_data_table_from_stats_response(f"team_last_{last_range}_totals", totals_response, primary_keys)
def update_opponent_last_totals(last_range): current_season = get_current_season_full() print(f"Fetching opponent stat totals for last {last_range}...") date_from = get_date_from_last_range(last_range) totals_response = leaguedashteamstats.LeagueDashTeamStats( measure_type_detailed_defense=MeasureTypeSimple.opponent, season=current_season, date_from_nullable=date_from, ) primary_keys = ["TEAM_ID"] update_data_table_from_stats_response(f"opponent_last_{last_range}_totals", totals_response, primary_keys)
import pandas as pd import time from nba_api.stats.endpoints import teamyearbyyearstats from nba_api.stats.endpoints import teamgamelog from nba_api.stats.endpoints import leaguedashteamstats from nba_api.stats.endpoints import boxscoresummaryv2 ''' This portion of the code is to implant the current seasons team stats up to date [season = '2019-20'] We then want assign it to a data frame ''' nbaTeamStats = leaguedashteamstats.LeagueDashTeamStats(season='2019-20') df_teamStats = nbaTeamStats.get_data_frames()[0] #print(df_teamStats) #Check if data frame is correctly filled df_teamStats.to_pickle( "/Users/anshumandash/nba_analysis_project/df_teamStats.pkl") df_season_game_log = pd.DataFrame() for i in range(0, len(df_teamStats), 1): #for i in range(0,2,1): #nbaTeamStatsDataFrame = df_teamStats.loc[[i],["TEAM_ID","TEAM_NAME","GP","PTS"]] These work right now #print(nbaTeamStatsDataFrame) nbaTeamID = df_teamStats.loc[i]['TEAM_ID'] nbaSeasonGameLog = teamgamelog.TeamGameLog( season="2019-20", team_id=nbaTeamID,
import sys import pymongo from pymongo import MongoClient from datetime import datetime, date import dateutil.parser from dateutil.tz import tzlocal import pytz from pytz import timezone currentSeason = 2019 schedule_url = 'http://data.nba.net/prod/v2/{}/schedule.json'.format( currentSeason) base_stats = leaguedashteamstats.LeagueDashTeamStats().get_dict( )['resultSets'][0]['rowSet'] adv_stats = leaguedashteamstats.LeagueDashTeamStats( measure_type_detailed_defense='Advanced').get_dict( )['resultSets'][0]['rowSet'] fmt = "%Y-%m-%d %H:%M:%S %Z%z" client = MongoClient('localhost', 27017) db = client.nba teamIndex = db.teamIndex.find({})[0] def fetchData(): # get team stats ----------------------------- for i in range(0, len(base_stats)):