Example #1
0
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
Example #3
0
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)
Example #4
0
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)
Example #5
0
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)
Example #6
0
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)
Example #7
0
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,
Example #8
0
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)):