Pandas使用 quantile() 方法计算 DataFrame 或 Series 的分位数

2023-02-24 00:00:00 方法 计算 位数

在 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)

相关文章