看过来
《pandas 教程》 持续更新中,提供建议、纠错、催更等加作者微信: gairuo123(备注:pandas教程)和关注公众号「盖若」ID: gairuo。跟作者学习,请进入 Python学习课程。欢迎关注作者出版的书籍:《深入浅出Pandas》 和 《Python之光》。
pandas 的 quantile()
方法用于计算 DataFrame 或 Series 的指定分位数(quantile)。分位数是统计学中的一个概念,用于表示数据的分布情况,比如中位数是 50% 分位数。
DataFrame.quantile(q=0.5, axis=0, numeric_only=False,
interpolation='linear', method='single')
q
:float
或 list-like
,默认值是 0.5
需要计算的分位数,可以是一个浮点数(如 0.25
表示 25% 分位数),也可以是一个列表(如 [0.25, 0.5, 0.75]
表示多个分位数)。
axis
:int
,默认值是 0
指定计算分位数的轴。0
表示按列计算分位数,1
表示按行计算分位数。
numeric_only
:bool
,默认值是 False
是否只计算数值类型的列。默认为 False
,即计算所有列(如果 True
,会忽略非数值类型的列)。
interpolation
:str
,默认值是 'linear'
当数据点不完全匹配时的插值方法。可以取值 'linear'
、'lower'
、'higher'
、'midpoint'
或 'nearest'
。
method
: {‘single’, ‘table’}, 默认值 ‘single’
是计算每列的分位数 (‘single’) 还是计算所有列的分位 (‘table’). 当使用 ‘table’, 唯一允许的插值方法是 ‘nearest’, ‘lower’, and ‘higher’
当所需的分位数位于两个数据点i和j之间时,此可选参数指定要使用的插值方法:
返回指定分位数的值。如果计算多个分位数,则返回一个 DataFrame,其中每列包含不同分位数的值。
df = pd.DataFrame(np.array([[1, 1], [2, 10], [3, 100], [4, 100]]),
columns=['a', 'b'])
df.quantile(.1)
'''
a 1.3
b 3.7
Name: 0.1, dtype: float64
'''
df.quantile([.1, .5])
'''
a b
0.1 1.3 3.7
0.5 2.5 55.0
'''
指定method='tab'将计算所有列的分位数。
df.quantile(.1, method="table", interpolation="nearest")
'''
a 1
b 1
Name: 0.1, dtype: int64
'''
df.quantile([.1, .5], method="table", interpolation="nearest")
'''
a b
0.1 1 1
0.5 3 100
'''
指定numeric_only=False也将计算日期时间和时间增量数据的分位数。
df = pd.DataFrame({'A': [1, 2],
'B': [pd.Timestamp('2010'),
pd.Timestamp('2011')],
'C': [pd.Timedelta('1 days'),
pd.Timedelta('2 days')]})
df.quantile(0.5, numeric_only=False)
'''
A 1.5
B 2010-07-02 12:00:00
C 1 days 12:00:00
Name: 0.5, dtype: object
'''
假设我们有一个包含学生成绩的 DataFrame,我们可以使用 quantile()
方法来计算不同分位数的成绩。
import pandas as pd
# 创建示例数据
data = {
'数学': [75, 85, 95, 65, 70],
'英语': [88, 92, 85, 70, 80],
'物理': [92, 90, 87, 85, 80]
}
df = pd.DataFrame(data)
# 计算 25%、50%、75% 分位数
quantiles = df.quantile(q=[0.25, 0.5, 0.75])
print(quantiles)
'''
数学 英语 物理
0.25 70.0 80.0 85.0
0.50 75.0 85.0 87.0
0.75 85.0 88.0 90.0
'''
更新时间:2024-08-08 20:46:31 标签:pandas python 分位数 quantile