Back to Data Analytics Projects

From the Field to the Classroom: A Look at the Majors of Division 1 Football Players

Introduction

Division 1 Football players are often stereotyped as taking easy majors to maintain their athletic commitments. But is this stereotype rooted in reality? Through a data-driven analysis of the academic paths of Division 1 Football players, this article seeks to explore the true spread of majors among some of the most prominent teams in college football. By examining patterns in major choice and comparing them to these stereotypes, this analysis aims to shed light on the academic paths of student-athletes and discussing the reality of commonly held beliefs.

As a former Football player, I often encountered this stereotype that athletes take the “easy road” when it comes to academics. This belief has fueled my curiosity to explore the academic paths of my fellow student-athletes and understand if this stereotype holds true. Through data analysis of the spread of majors among Division 1 Football players, this article aims to answer questions around the academic choices of college athletes. Do student-athletes choose majors based on their athletic commitments or for the potential of a future career? How do the schedules of student-athletes affect their academic choices?

Data and Methodology

The purpose of this study is to examine the spread of majors among Division 1 Football players. To collect data, I used the online rosters of 10 college football programs that publicly disclose the majors of their athletes. The programs were chosen based on their ranking in the top 25, with the first 10 teams that disclose their major information being selected. The data was obtained using a Python program that I designed to scrape information from the websites. Here are the 10 schools that were chosen.

The information that I was after on these roster pages was each athletes, name, major, class, hometown, and school. Across the 10 programs included in this analysis, a total of over 1000 athletes were examined. I chose these variables because they provide a comprehensive picture of the athletes academic and athletic profiles, and because they are readily available on the public roster pages.

While developing my Python program, I encountered challenges as most schools had different website layouts that made it difficult to locate and obtain certain information. Consequently, I had to write custom scripts for each school, but fortunately, they all followed a similar structure, making the process much faster and reusable in the future. As an example, here is a script for the Oregon State roster in the program.

# Main.py

import pandas as pd
import UGARoster as UGA
import OregonStateRoster as OregonState
import TexasRoster as Texas

def export_data_frame_to_excel(dataFrame, name):
  try:
    print('Exporting to excel...')
    downloadURL = '~/Downloads/' + name + '.csv'
    dataFrame.to_csv(downloadURL, index=False)
    print('...Finished')
  except:
    print('Failure exporting to excel')
  
if __name__ == '__main__':

    rosterData = pd.DataFrame()

    UGAData = UGA.get_info()
    rosterData = rosterData.append(UGAData)

    ...

    OregonStateData = OregonState.get_info()
    rosterData = rosterData.append(OregonStateData)

    TexasData = Texas.get_info()
    rosterData = rosterData.append(TexasData)

    rosterData['Class'] = rosterData['Class'].str.lower()
    rosterData['Major'] = rosterData['Major'].str.lower()

    export_data_frame_to_excel(rosterData, 'NCAA-Div-1-roster-info')
# OregonStateRoster.py

import requests
from bs4 import BeautifulSoup
import pandas as pd

def get_info():

    print('Getting Oregon State Info...')
    dataFrame = {'Name': [],
                 'Major': [],
                 'Class': [],
                 'Hometown': [],
                 'School': []}
    rosterData = pd.DataFrame(dataFrame)

    try:
        url = 'https://osubeavers.com/sports/football/roster'
        response = requests.get(url)

        rosterPage = BeautifulSoup(response.text, 'html.parser')

        rosterList = rosterPage.find('div', {'class': 'c-rosterpage__players'})
        for player in rosterList.find_all('div', {'class': 's-person-card__content'}):
            href = player.find('a').get('href')
            playerInfo = get_info_from_bio(href)
            rosterData = rosterData.append(playerInfo, ignore_index=True)

        return rosterData
    except:
        print('Failure in Oregon State get_info()')


def get_info_from_bio(href):
    try:
        url = 'https://osubeavers.com' + href
        response = requests.get(url)
        bioPage = BeautifulSoup(response.text, 'html.parser')
        name = bioPage.find('div', {'class': 'c-rosterbio__player__name'}).get_text()
        name = name.replace('\n', ' ').strip()
        name = name.replace('  ', ' ')
        classStanding = get_class_standing(bioPage)
        hometown = get_hometown(bioPage)
        bioContent = bioPage.find('div', {'class': 'legacy_to_nextgen'}).get_text()
        major = ''
        if 'PERSONAL' in bioContent:
            personalSection = bioContent[bioContent.find('PERSONAL') + 9:]
            major = get_major_from_personal_section(personalSection)
        if major == '':
            major = 'No Bio Listed'

        player = {'Name': name, 'Major': major, 'Class': classStanding, 'Hometown': hometown,
                  'School': 'Oregon State'}
        return player
    except:
        print('Failure in Oregon State get_info_from_bio()')


def get_class_standing(bioPage):
    bioSection = bioPage.find('div', {'class': 'c-rosterbio__playerfields'})
    for li in bioSection.find_all('li'):
        if 'Year' in li.get_text():
            classStanding = li.get_text()
            classStanding = classStanding.replace('\n', ' ')
            classStanding = classStanding.replace('  ', ' ')
            classStanding = classStanding[5:]
            break
    return classStanding.strip()


def get_hometown(bioPage):
    bioSection = bioPage.find('div', {'class': 'c-rosterbio__playerfields'})
    for li in bioSection.find_all('li'):
        if 'Hometown' in li.get_text():
            hometown = li.get_text()
            hometown = hometown.replace('\n', ' ')
            hometown = hometown.replace('  ', ' ')
            hometown = hometown[9:]
            break
    return hometown.strip()


def get_major_from_personal_section(personalSection):
    major = ''
    try:
        if personalSection.find('Majoring') != -1:
            personalSection = personalSection[personalSection.find('Majoring') + 11:]
            if '\r\n' in personalSection:
                personalSection = personalSection[:personalSection.find('\r\n')]
            if ' after' in personalSection:
                personalSection = personalSection[:personalSection.find(' after')]
            major = personalSection
        if personalSection.find('degree') != -1:
            personalSection = personalSection[personalSection.find('degree') + 6:]
            personalSection = personalSection[personalSection.find('in ') + 2:]
            if '\r\n' in personalSection:
                personalSection = personalSection[:personalSection.find('\r\n')]
            major = personalSection
            
        if major == '':
            major = 'No Major Listed'

        return major.strip()
    except:
        print('Failure in Oregon State get_major_from_personal_section()')
To obtain the team information, the program follows a specific workflow. Main.py calls OregonStateRoster.py to extract the data of the entire team from the online roster into a Pandas data frame. OregonStateRoster.py establishes a connection with the roster page and parses out the players using html tags such as
and

. The program then collects the link to each player’s personal bio page and extracts their name, year, and hometown from the header. The player’s major is obtained by searching for relevant keywords in their written bio. The program then creates a new row in the data frame and adds the information for each player on the roster. The process is repeated for every player on the team, and the total time required for the program to run for all the schools is approximately 20 minutes. For future research, the program has the potential for optimization and possibly standardization across all the teams.

Cleaning the Data

To prepare the data for analysis, I standardized the formatting of the major and class variables. This involved removing variations in spelling, capitalization, and punctuation across different roster pages. Additionally, I excluded athletes whose major information was missing or labeled as “undecided” on the roster pages. After this cleaning process, a total of just over 600 athletes were included in the analysis. To facilitate interpretation, I grouped majors in 9 broad categories based on the College Board’s BigFuture website. These categories were: Business, Communications, Education, Engineering, Humanities, Natural Sciences, Social Sciences, and Sports Related.The Sports Related category was added in place of Trades and Personal Services, as this better reflected a part of the data set.

Arts & Humanities Business Health and Medicine Multi-Interdisciplinary Studies Public and Social Services Science, Technology, Engineering, and Math (STEM) Social Sciences Sports Related
Art Accountancy Animal Nutrition Agricultural Leadership, Education & Communication Criminology Aeronautical Technology Broadcast Journalism Physical Culture & Sports
Communications Accounting Animal Science Agricultural Ststems Management Early Childhood Education Architechtural Engineering Consumer & Family Financial Services Recreation & Sport Management
Cultural Anthropology Advertising Athletic Training & Rehab Sciences Applied Computing Elementary Education Bio Engineering Development & Family Science Sport Coaching, Rec & Physical Education
Design Agribusiness Biology Arts and Sciences Homeland Security Studies Chemical Engineering Development & Family Sciences Sport Industry
Digital Communication Arts Business Biology-Pre-Med-Track Biology & Economics Labor and Human Resources Civil Engineering Family & Consumer Sciences Sport Management
Entertainment & Media Studies Business & Marketing Biomedical Engineering Construction Sciences & Management Landscape Contracting Computer Engineering Human Development & Family Studies Sports Communication
Film & Media Arts Business Administration Cell & Molecular Biology Design & Innovation Management Parks, Recreation & Tourism Management Computer Science Political Science Sports Medicine
Graphic Communications Business Analytics Excercise Science Environmental Sciences Secondary Education Construction Engineering Psychology Sports Studies
History Business Management Food Science Human Dimension of Organizations Social Studies Education Construction Science Radio-Television-Film
Journalism Construction Management Genetics Interdisciplinary studies Special Education Electrical Engineering Social Sciences
Journalism & Electronic Media Corporate Communication Health & Kinesiology Learning Design & Technology Psychology & Criminology Engineering Physics Sociology
Liberal Studies Economics Health & Physical Education Recreation, Park, & Tourism Management Environmental Sciences Speach Communication
Philosophy Finance Health Science Social Transformation Studies General Engineering
Religion Financial Management Kinesiology Youth & Community Studies Industrial Engineering
Housing management & Policy Nutrition and Excercise Science Mechanical Engineering
Information Systems & Technology Physical Science Natural Resources
Management Public Health Nuclear Engineering
Marketing Therapeutic Recreation Physics
Pre-Business Telecommunications
Pre-Communication Zoology
Pre-Professional Programs
Professional Strategic Selling
Public Relations
Real Estate

Limitations of the Data

In terms of limitations of this data, it is important to note that some majors may fall under multiple categories. Additionally, Multi-Interdisciplinary Studies may be difficult to categorize definitively. Similarly, the Sports Related category may not fully capture the range of majors that could be considered relevant to athletics.

Overall, this data provides valuable insight into the academic paths of student-athletes and how those paths intersect with their athletic pursuits. The results are in line with some expectations, but also provide a more nuanced understanding of the spread of majors among Division 1 football players. This information has the potential to inform future research and contribute to a better understanding of the experiences and challenges faced by student-athletes in higher education.

Results

Overview of the Majors Chosen By Division 1 Football Players

The analysis of the data showed that the majority of the 608 college football players surveyed chose to major in Business-related fields, with 247 athletes pursuing degrees in this area. Arts and Humanities were the second most popular major among the players, with 87 students selecting this field. Health and Medicine were also a popular choice, with 80 athletes opting to major in this area. Interestingly, only 42 athletes chose to pursue sports-related majors, indicating that most players chose to major in areas outside of their athletic commitments. Overall, the data provided insight into the academic paths of student-athletes and how these paths are intertwined with their athletics.

Discussion

We are aiming to explore the academic choices of Division 1 football players and analyze the specialties of different schools when it comes to major choice. One question that arises is whether football players tend to opt for “easy” majors or if there are other factors that influence their academic decisions. Additionally, we will examine whether the stereotype of football players as primarily choosing Business-related majors holds true across all schools or if there any surprising results.

Do Division 1 Football Players Tend to Choose “Easy” Majors?

What is Considered an Easy Major?

Easy majors are a common topic of discussion, especially in relation to Division 1 football players. While the definition of an easy major may be subjective and influenced by various factors, such as the rigor of the school or individual circumstances, rankings such as those provided by University HQ are often cited. According to their data, the top five easiest majors fall under the categories of Business, Arts and Humanities, and Public and Social Services, with Business / Management being the easiest. However, it’s important to consider the limitations and biases of these rankings, such as the reliance on factors like graduate GPA data and student reviews.

Why Would an Athlete Choose an “Easy” Major?

When considering what might constitute an “easy” major, it’s important to acknowledge the demands placed on Division 1 student-athletes. As someone who played Division 3 football, I know firsthand how much time and effort goes into practices, meetings, and film sessions. For Division 1 athletes, this commitment can easily exceed 20 hours per week. According to a Flagler College Gargoyle article, these student-athletes spend an average of just six hours on school work, 5.7 hours on athletic events, and 3.3 hours on social life, leaving roughly seven hours for sleep. Given this grueling schedule, it’s understandable why student-athletes might opt for majors that are less time-consuming or demanding. After all, their days are already longer and harder than most.

After analyzing the findings, it is evident that Division 1 football players gravitate towards “easy” majors. This trend is supported by the data, and can be attributed to their rigorous schedules or the possibility of burnout from their demanding commitments.

Conclusion

Through a data-driven analysis of the academic paths of Division 1 football players, this article has explored the reality of stereotypes that suggest that athletes take the “easy road” when it comes to academics. As a former football player, this stereotype has fueled my curiosity to understand if it holds true. By examining patterns in major choice and comparing them to these stereotypes, this analysis has shed light on the academic paths of student-athletes and discussed the reality of commonly held beliefs. By the data analyzed in this article, it is safe to assume that these stereotypes hold true… Whether we want to believe it or not.