Pandas使用 quantile() 方法计算 DataFrame 或 Series 的分位数
在 Pandas 中,可以使用 quantile() 方法计算 DataFrame 或 Series 的分位数。分位数是指将数据分成若干个等份的数值点,例如,第二四分位数(又称为中位数)将数据分成两等份,第三四分位数将数据分成三等份,以此类推。
quantile() 方法可以接受一个浮点数参数 q,表示要计算的分位数。例如,q=0.5 表示计算中位数,q=0.25 表示计算第一四分位数,q=0.75 表示计算第三四分位数。以下是一个示例代码:
import pandas as pd # 创建示例Series s = pd.Series([1, 2, 3, 4, 5]) # 计算中位数 median = s.quantile(q=0.5) print(median) # 计算第一四分位数 q1 = s.quantile(q=0.25) print(q1) # 计算第三四分位数 q3 = s.quantile(q=0.75) print(q3)
输出结果如下所示:
3.0 2.0 4.0
在这个示例中,我们创建了一个包含 5 个整数的 Series,并计算了它的中位数、第一四分位数和第三四分位数。quantile() 方法还可以接受多个分位数值的列表,以一次计算多个分位数。
注意,quantile() 方法默认使用线性插值来计算分位数。如果需要使用不同的插值方法,可以在 quantile() 方法中传递 interpolation 参数。常用的插值方法包括:linear(线性插值,缺省值)、lower(选择最靠近要求的分位数的数值)、higher(选择最靠近要求的分位数的数值的下一个数值)、nearest(选择最靠近要求的分位数的数值)和midpoint(选择最靠近要求的分位数的两个数值的平均值)。例如,可以使用以下代码计算 s 的第一四分位数,并使用最靠近的值插值方法:
q1 = s.quantile(q=0.25, interpolation='nearest') print(q1)
相关文章