def create_player_from_table(player_data, game, player=None):
    # create the player if he didn't already exist
    if not player:
        player_name = player_data.select('td > a')[0].text.split('-')[0].strip()
        played = not any([re.search('DN[PD]', elem.text) for elem in player_data.select('td')])
        player = Player(player_name, played, game)

    # populate player stats
    if player.played:
        player.traditional_stats = populate_traditional_stats(player_data.select('td')[1:])

    return player