Homepagina Over mij Decompositie en adviezen Digitale veiligheid Gestructureerde data Representeren Rekenspel 1 Rekenspel 2 Identificeren Warmingstripes

Gestructureerde data


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()


5. PSV heeft in het seizoen 2023/2024 uitermate goed gedaan. De overgrote meerderheid van hun gespeelde wedstrijden is een overwinning, en ze lieten zich als het even wat minder ging bij de rust niet afleiden. In de meeste gevallen kwamen ze dan ook terug en namen ze de overwinning alsnog mee naar huis. Ook is het erg mooi om te zien hoe dat harde werk dan wordt beloont door de Eredivisie dit jaar te winnen. Slechts één keer kregen ze het niet voor elkaar om een partij winnen, en er waren slechts vier gelijkspellen. Geen enkele andere club kreeg dat dit jaar voor elkaar. Al met al dus een prachtig jaar voor deze club uit Brabant, waarin ze niet alleen fysiek, maar ook mentaal erg sterk waren.