import pandas as pd import matplotlib.pyplot as plt
#lees het CSV bestand uit en controleer of de eerste kolommen overeen komen df = pd . read_csv ('Voetbaldata 2023_2024.csv') df.head() df.describe()
|
 |
df['TotaalAantalDoelpunten'] = df['FTAG'] + df['FTHG'] #maak een nieuwe rij df.head()
|
 |
totaal_goals = df['TotaalAantalDoelpunten'].sum() #print het totaal aantal doelpunten print(totaal_goals)
|
 |
gemiddelde_goals = df['TotaalAantalDoelpunten'].mean() #berekent het gemiddeld aantal gescoorde doelpunten per wedstrijd print (f"{gemiddelde_goals:.2}")
|
 |
resultaat_verdeling = df['FTR'].value_counts() #bekijkt of het inderdaad klopt dat een thuisspelend team voordeel heeft print(resultaat_verdeling)
|
 |
resultaat_verdeling . plot ( kind ='pie' , autopct ='', title ='Verdeling van winsten thuis en uit') #zet de resultaten uit het vorige blok in een piechart plt . ylabel('') plt . show ()
|
 |
df['TotaalAantalDoelpunten'].plot ( kind ='hist' , bins=20, title ='') #laat zien hoeveel doelpunten er dit jaar per wedstijd zijn gescoord plt.show() |
 |
teamnaam="PSV Eindhoven" df_team= df[(df['HomeTeam'] == teamnaam) | (df['AwayTeam'] == teamnaam)] df_team.head()
df_team_thuis= df[(df['HomeTeam'] == teamnaam)] df_team_uit= df[(df['AwayTeam'] == teamnaam)] #plot de piechart waarin de resultaten van PSV thuis uiteen wordt gezet resultaat_verdeling = df_team_thuis['FTR'].value_counts() resultaat_verdeling . plot ( kind ='pie' , autopct ='', title ='Verdeling van winsten thuis') plt.ylabel('') plt.show() #plot de piechart waarin de resultaten van PSV uit uiteen wordt gezet resultaat_verdeling = df_team_uit['FTR'].value_counts() resultaat_verdeling . plot ( kind ='pie' , autopct ='', title ='Verdeling van winsten uit') plt.ylabel('') plt.show()
|
 |
2. Mijn team presteerd beter bij thuis wedstrijden dan bij uitwedstrijden, omdat ze een grotere hoeveelheid wedstrijden thuis hebben gewonnen dan uit. Dit is te zien in de piecharts hierboven. |
teamnaam="PSV Eindhoven" df_team= df[(df['HomeTeam'] == teamnaam) | (df['AwayTeam'] == teamnaam)] df_team.head()
df_team_thuis= df[(df['HomeTeam'] == teamnaam)] df_team_uit= df[(df['AwayTeam'] == teamnaam)]
resultaat_verdeling = df_team_thuis['FTR'].value_counts() resultaat_verdeling . plot ( kind ='pie' , autopct ='', title ='Verdeling van winsten thuis') plt.ylabel('') plt.show()
resultaat_verdeling = df_team_uit['FTR'].value_counts() resultaat_verdeling . plot ( kind ='pie' , autopct ='', title ='Verdeling van winsten uit') plt.ylabel('') plt.show() #tot hier overgenomen van de vorige opdracht
#vervang FTR voor HTR om de halftime-results te krijgen. Deze kunnen we dan vergelijken met de full time results. resultaat_verdeling = df_team_thuis['HTR'].value_counts() resultaat_verdeling . plot ( kind ='pie' , autopct ='', title ='Wie stond er voor na de eerste helft thuis') plt.ylabel('') plt.show()
resultaat_verdeling = df_team_uit['HTR'].value_counts() resultaat_verdeling . plot ( kind ='pie' , autopct ='', title ='Wie stond er voor na de eerste helft uit') plt.ylabel('') plt.show()
|
 |
 |
3. Uit deze grafieken is af te lezen dat PSV bij de rust er vaak slechter uit kwam dan bij de eindstand. Dit geldt voor zowel thuis als uit. |
teamnaam="PSV Eindhoven"
df_team_thuis= df[(df['HomeTeam'] == teamnaam)]
df_team_uit= df[(df['AwayTeam'] == teamnaam)]
df_team.head()
winst = 0
verlies = 0
gelijk = 0
#tel de hoeveelheid winsten, verliezen en gelijkspellen zoals het in het bestand geoordend staat bij elkaar op
for resultaten in df_team_thuis['FTR']:
if resultaten == 'H':
winst+=1
elif resultaten == 'A':
verlies+=1
elif resultaten == 'D':
gelijk+=1
for resultaten in df_team_uit['FTR']:
if resultaten == 'A':
winst+=1
elif resultaten == 'H':
verlies+=1
elif resultaten == 'D':
gelijk+=1
#plot het staafdiagram
y = [winst,verlies,gelijk]
x = ['winst','verlies','gelijk']
plt.bar(x,y)
plt.ylabel('Aantal wedstrijden')
plt.show()
|
 |