示例#1
0
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
示例#2
0
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)
示例#3
0
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)