def readPlayerFile(f): name = f.name.split('/') name = name[-1] name = name.split('.csv') name = name[0] player = plotShots.Player(name) reader = csv.reader(f, delimiter = ',') beginFG = [] endFG = [] gameShots = [] date = '' firstLine = True for row in reader: if firstLine: firstLine = False continue made, shot = plotShots.readRow(row, player) if shot.date == date: gameShots.append(shot) else: date = shot.date if len(gameShots) > 10: (begin, end) = calcFG(gameShots) beginFG.append(begin) endFG.append(end) gameShots = [] gameShots.append(shot) if len(gameShots) > 10: (begin, end) = calcFG(gameShots) beginFG.append(begin) endFG.append(end) return beginFG, endFG, name
def readPlayerFile(f): name = f.name.split('/') name = name[-1] name = name.split('.csv') name = name[0] player = plotShots.Player(name) reader = csv.reader(f, delimiter = ',') gameShots = [] date = '' shotFactors = [] firstLine = True for row in reader: if firstLine: firstLine = False continue (made, shot) = plotShots.readRow(row, player) # Check if it is the same game # If it is, add shot # If not, calculate factors for all fourth quarter shots if shot.date == date: gameShots.append(shot) else: date = shot.date gameFactors = createFactors(gameShots) if len(gameFactors) > 0: shotFactors += gameFactors gameShots = [] gameShots.append(shot) gameFactors = createFactors(gameShots) if len(gameFactors) > 0: shotFactors += gameFactors return (name, shotFactors)
def calcTrainingSets(f): name = f.name.split('/') name = name[-1] name = name.split('.csv') name = name[0] player = plotShots.Player(name) reader = csv.reader(f, delimiter = ',') firstLine = True date = '' xTraining = [] yTraining = [] xData = [] yData = [] beginTaken = 0 beginMade = 0 endTaken = 0 endMade = 0 newGame = False counter = 0 for row in reader: # skip the first line if firstLine: firstLine = False continue (made, shot) = plotShots.readRow(row, player) if shot.shotType == 'free throw': continue made = bool(made) # Same Game if shot.date == date: if made: if shot.quarter <= 3: beginTaken += 1 beginMade += 1 else: endTaken += 1 endMade += 1 else: if shot.quarter <= 3: beginTaken += 1 else: endTaken += 1 # New Game # Caclculate percentages of previous game # Disregard games with no shots taken in either the first 3 quarters or last quarter # Restart shot counters, and update date. Account for new shot else: if beginTaken != 0 and endTaken != 0: # if counter % 2 == 0: xTraining.append(calcFG(beginTaken, beginMade)) yTraining.append(calcFG(endTaken, endMade)) # else: # xData.append(calcFG(beginTaken, beginMade)) # yData.append(calcFG(endTaken, endMade)) counter += 1 beginTaken = 0 endTaken = 0 beginMade = 0 endMade = 0 date = shot.date if made: if shot.quarter <= 3: beginTaken += 1 beginMade += 1 else: endTaken += 1 endMade += 1 else: if shot.quarter <= 3: beginTaken += 1 else: endTaken += 1 # figure() # sct = scatter(xTraining, yTraining) # suptitle(name + ' Field Goal Percentages') # xlabel('First Three Quarters') # ylabel('Fourth Quarter and Overtime') # grid('on') # show() return (name, xTraining, yTraining)