Python で四分位範囲を計算する方法
四分位範囲 は「IQR」と呼ばれることがあり、データセットの中間 50% の分布を測定する方法です。これは、データセットの第 1 四分位* (25 パーセンタイル) と第 3 四分位 (75 パーセンタイル) の差として計算されます。
幸いなことに、Python ではnumpy.percentile()関数を使用してデータセットの四分位範囲を計算するのは簡単です。
このチュートリアルでは、この機能の実際の使用例をいくつか示します。
例 1: テーブルの四分位範囲
次のコードは、単一のテーブル内の値の四分位範囲を計算する方法を示しています。
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
このデータセットの四分位範囲は12.25であることがわかります。これは、このデータセット内の値の中間 50% の分布です。
例 2: データ フレーム列の四分位範囲
次のコードは、データ フレーム内の単一列の四分位範囲を計算する方法を示しています。
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
ポイント列の値の四分位範囲は5.75であることがわかります。
例 3: 複数のデータ フレーム列の四分位範囲
次のコードは、データ フレーム内の複数の列の四分位範囲を同時に計算する方法を示しています。
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
注:上記のデータ フレーム内の複数の列の IQR を計算するには、pandas.DataFrame.apply()関数を使用します。
追加リソース
四分位範囲 (IQR) は外れ値の影響を受けますか?
Excel で四分位範囲 (IQR) を計算する方法
四分位範囲計算ツール