sportsref/nfl/pbp.py
def _add_team_columns(features):
    """Function that adds 'team' and 'opp' columns to the features by iterating
    through the rows in order. A precondition is that the features dicts are in
    order in a continuous game sense and that all rows are from the same game.

    :features: A DataFrame with each row representing each play (in order).
    :returns: A similar DataFrame but with 'team' and 'opp' columns added.
    """
    features = features.to_dict('records')
    curTm = curOpp = None
    playAfterKickoff = False
    # fill in team and opp columns
    for row in features:
        # if it's a kickoff or the play after a kickoff,
        # figure out who has possession manually
        if row['isKickoff'] or playAfterKickoff:
            curTm, curOpp = _team_and_opp(row)
        else:
            curTm, curOpp = _team_and_opp(row, curTm, curOpp)
        row['team'], row['opp'] = curTm, curOpp
        # set playAfterKickoff
        playAfterKickoff = row['isKickoff']

    features = pd.DataFrame(features)
    features.team.fillna(method='bfill', inplace=True)
    features.opp.fillna(method='bfill', inplace=True)
    # ffill for last row
    features.team.fillna(method='ffill', inplace=True)
    features.opp.fillna(method='ffill', inplace=True)
    return features
def _add_team_columns(features):
    features = features.to_dict('records')
    curTm = curOpp = None
    playAfterKickoff = False
    # fill in team and opp columns
    for row in features:
        # if it's a kickoff or the play after a kickoff,
        # figure out who has possession manually
        if row['isKickoff'] or playAfterKickoff:
            curTm, curOpp = _team_and_opp(row)
        else:
            curTm, curOpp = _team_and_opp(row, curTm, curOpp)
        row['team'], row['opp'] = curTm, curOpp
        # set playAfterKickoff
        playAfterKickoff = row['isKickoff']

    features = pd.DataFrame(features)
    features.team.fillna(method='bfill', inplace=True)
    features.opp.fillna(method='bfill', inplace=True)
    # ffill for last row
    features.team.fillna(method='ffill', inplace=True)
    features.opp.fillna(method='ffill', inplace=True)
    return features
def _add_team_columns ( features ) : features = features . to_dict ( 'records' ) curTm = curOpp = None playAfterKickoff = False # fill in team and opp columns for row in features : # if it's a kickoff or the play after a kickoff, # figure out who has possession manually if row [ 'isKickoff' ] or playAfterKickoff : curTm , curOpp = _team_and_opp ( row ) else : curTm , curOpp = _team_and_opp ( row , curTm , curOpp ) row [ 'team' ] , row [ 'opp' ] = curTm , curOpp # set playAfterKickoff playAfterKickoff = row [ 'isKickoff' ] features = pd . DataFrame ( features ) features . team . fillna ( method = 'bfill' , inplace = True ) features . opp . fillna ( method = 'bfill' , inplace = True ) # ffill for last row features . team . fillna ( method = 'ffill' , inplace = True ) features . opp . fillna ( method = 'ffill' , inplace = True ) return features
Function that adds 'team' and 'opp' columns to the features by iterating
    through the rows in order. A precondition is that the features dicts are in
    order in a continuous game sense and that all rows are from the same game.

    :features: A DataFrame with each row representing each play (in order).
    :returns: A similar DataFrame but with 'team' and 'opp' columns added.
Function that adds team and opp columns to the features by iterating through the rows in order . A precondition is that the features dicts are in order in a continuous game sense and that all rows are from the same game .