Hoe het interkwartielbereik in python te berekenen
Het interkwartielbereik , vaak „IQR“ genoemd, is een manier om de verdeling van de middelste 50% van een dataset te meten. Het wordt berekend als het verschil tussen het eerste kwartiel* (het 25e percentiel) en het derde kwartiel (het 75e percentiel) van een dataset.
Gelukkig is het eenvoudig om het interkwartielbereik van een dataset in Python te berekenen met behulp van de functie numpy.percentile() .
Deze tutorial toont verschillende voorbeelden van praktisch gebruik van deze functie.
Voorbeeld 1: interkwartielbereik van een tabel
De volgende code laat zien hoe u het interkwartielbereik van waarden in één tabel kunt berekenen:
import numpy as np #define array of data data = np.array([14, 19, 20, 22, 24, 26, 27, 30, 30, 31, 36, 38, 44, 47]) #calculate interquartile range q3, q1 = np. percentile (data, [75,25]) iqr = q3 - q1 #display interquartile range iqr 12.25
De interkwartielafstand van deze dataset blijkt 12,25 te zijn. Dit is de verdeling van de middelste 50% van de waarden in deze dataset.
Voorbeeld 2: Interkwartielbereik van een dataframekolom
De volgende code laat zien hoe u het interkwartielbereik voor een enkele kolom in een dataframe kunt berekenen:
import numpy as np import pandas as pd #create data frame df = pd.DataFrame({'rating': [90, 85, 82, 88, 94, 90, 76, 75, 87, 86], 'points': [25, 20, 14, 16, 27, 20, 12, 15, 14, 19], 'assists': [5, 7, 7, 8, 5, 7, 6, 9, 9, 5], 'rebounds': [11, 8, 10, 6, 6, 9, 6, 10, 10, 7]}) #calculate interquartile range of values in the 'points' column q75, q25 = np. percentile (df['points'], [75,25]) iqr = q75 - q25 #display interquartile range iqr 5.75
Het interkwartielbereik van de waarden in de puntenkolom blijkt 5,75 te zijn.
Voorbeeld 3: Interkwartielbereik van meerdere dataframekolommen
De volgende code laat zien hoe u het interkwartielbereik van meerdere kolommen in een dataframe tegelijkertijd kunt berekenen:
import numpy as np import pandas as pd #create data frame df = pd.DataFrame({'rating': [90, 85, 82, 88, 94, 90, 76, 75, 87, 86], 'points': [25, 20, 14, 16, 27, 20, 12, 15, 14, 19], 'assists': [5, 7, 7, 8, 5, 7, 6, 9, 9, 5], 'rebounds': [11, 8, 10, 6, 6, 9, 6, 10, 10, 7]}) #define function to calculate interquartile range def find_iqr(x): return np. subtract (*np. percentile (x, [75, 25])) #calculate IQR for 'rating' and 'points' columns df[[' rating ', ' points ']]. apply (find_iqr) rating 6.75 points 5.75 dtype:float64 #calculate IQR for all columns df. apply (find_iqr) rating 6.75 points 5.75 assists 2.50 rebounds 3.75 dtype:float64
Opmerking: we gebruiken de functie pandas.DataFrame.apply() om de IQR voor meerdere kolommen in het bovenstaande dataframe te berekenen.
Aanvullende bronnen
Wordt de interkwartielafstand (IQR) beïnvloed door uitschieters?
Hoe het interkwartielbereik (IQR) in Excel te berekenen
Interkwartielafstandscalculator