如何在python中计算四分位数范围


四分位,通常称为“IQR”,是一种衡量数据集中间 50% 分布的方法。它的计算方式为数据集的第一个四分位数*(第 25 个百分位数)和第三个四分位数(第 75 个百分位数)之间的差异。

幸运的是,使用numpy.percentile()函数可以轻松计算 Python 中数据集的四分位数范围。

本教程展示了此功能实际使用的几个示例。

示例 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

注意:我们使用pandas.DataFrame.apply()函数来计算上述数据框中多列的 IQR。

其他资源

四分位距 (IQR) 是否受异常值影响?
如何在 Excel 中计算四分位距 (IQR)
四分位距计算器

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注