1
This repository has been archived on 2021-11-25. You can view files and clone it, but cannot push or open issues or pull requests.
Project_Steam_Tracker/stats.py
2021-01-19 13:35:32 +01:00

97 lines
3.3 KiB
Python

# deze functies zijn overgenomen van practicum_3_statistiek_student.py, geimplementeerd door Taha
def mean(lst):
""" Retourneer het gemiddelde (float) van de lijst lst. """
return float(sum(lst) / len(lst)) # totaal waarde van lijst - aantal waardes in lijst in float returnen
def rnge(lst):
""" Retourneer het bereik (int) van de lijst lst. """
lst.sort() # sorteer lijst
return int(lst[-1] - lst[0]) # hoogste waarde - laagste waarde in int returnen
def median(lst):
""" Retourneer de mediaan (float) van de lijst lst. """
lst.sort() # sorteer lijst
p = len(lst) # lengte lijst opvragen
if p % 2: # als lengte van lijst oneven is
return float(lst[p // 2]) # return middelste waarde in gesorteerde lijst als float
else: # lijst heeft 2 waardes in het midden
return float(sum(lst[p // 2 - 1:p // 2 + 1]) / 2) # return het gemiddelde van de middelste 2 waardes als float
def var(lst):
""" Retourneer de variantie (float) van de lijst lst. """
t = [] # tijdelijke lijst aanmaken
m = mean(lst) # mean van de lijst opslaan
for i in lst: # voor elke entry in lijst
t.append((i - m) ** 2) # kwadraat van i - mean opslaan in tijdelijke lijst
return float(sum(t) / len(lst)) # float van totaal waarde lijst - lengte lijst returnen
def std(lst):
""" Retourneer de standaardafwijking (float) van de lijst lst. """
return float(var(lst) ** 0.5) # wortel trekken van variatie
def freq(lst):
"""
Retourneer een dictionary met als keys de waardes die voorkomen in lst en
als value het aantal voorkomens van die waarde.
"""
t = {} # lege dict aanmaken
for i in lst: # voor elk cijfer in lijst
if i in t: # als cijfer in dict bestaat
t[i] = t[i] + 1 # +1 doen op de huidige aantal in dict
else: # cijfer bestaat niet in dict
t[i] = 1 # voeg cijfer toe met waarde 1
return t # return de dict
def modes(lst):
""" Retourneer een gesorteerde lijst (list) van de modi van lijst lst. """
m = [] # lijst aanmaken om de values op te slaan
r = [] # lijst maken om de keys op te slaan(de waardes die we gaan retourneren)
f = freq(lst) # een frequentie dict maken
for x in f: # voor elke key in de dict
m.append(f[x]) # de waarde opslaan in de lijst m
maximum_v = max(m) # pak de hoogste waarde in de lijst met waardes
for x in f: # voor elke key in de dict
if f[x] == maximum_v: # als de waarde van de dict overeenkomt met de maximum berekende waarde
r.append(x) # de key opslaan in de resultaten lijst
return sorted(r) # geef de r lijst terug gesorteerd
########################################
# stats genereren #
########################################
def popgenre(data_tpl):
genres = []
for x in data_tpl: # voor elke "game"
lst_genres = x[9].split(';') # genres opsplitten door de semicolons
for y in lst_genres: # voor elke genre in game
genres.append(y) # toevoegen genre in lijst genres
return modes(genres)[0] # eerst populairste genre terug geven op basis van gegevens van modes(), wat is de kans
# dat er meerdere genres tegelijk populair zijn, toch?
def median_prijs(data_tpl):
prijzen = []
for x in data_tpl:
prijzen.append(x[17])
return float(median(prijzen))