Skip to content

Fantasy Football Analysis

Import All of the players and high level stats

class Player:
    def __init__(self, name, points_for, points_against, record, standing):
        self.name = name
        self.points_for = points_for
        self.points_against = points_against
        self.record = record
        self.standing = standing 
        print(f"{name} went {record} scoring {points_for} points while having scored {points_against} points against. Their standing was {standing}.")
        

players = [Player('Big C', 1764.14, 1653.96, '9-5', '1'), 
           Player('Big M', 1807.56, 1752.12, '8-6', '2'), 
           Player('Big J', 1915.32, 1783.5, '7-7', '3'), 
           Player('Mid J', 1798.7, 1720.22, '7-7', '4'), 
           Player('Big R', 1766.14, 1843.8, '6-8', '5'), 
           Player('Big D', 1469.7, 1767.96, '5-9', '6')
          ]  

Transform Classes into a dataframe

import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
people = pd.DataFrame.from_records(vars(o) for o in players)
people['delta'] = people['points_for']- people['points_against']

print(people)

Sorting Values by other Attributes:

  1. Delta
  2. Points For
  3. Points Against
def sorted_values(column, ascending):
    order = people.sort_values(by = column, ascending= ascending).name.values
    sns.barplot(x= 'name', y = column, data = people, label = column, order = order )

sorted_values('delta', False)
plt.show()
sorted_values('points_for', False)
plt.show()
sorted_values('points_against', True)
plt.show()