pandas.DataFrame.quantile #

数据框。分位数( q = 0.5 , axis = 0 , numeric_only = False ,插值= '线性' , method = 'single' ) [来源] #

返回请求轴上给定分位数的值。

参数
q浮点数或类数组,默认 0.5(50% 分位数)

0 <= q <= 1 之间的值,即要计算的分位数。

{0 或 'index', 1 或 'columns'}, 默认 0

等于 0 或“索引”(按行),1 或“列”(按列)。

numeric_only布尔值,默认 False

仅包含floatintboolean数据。

版本 2.0.0 中更改:默认值为numeric_onlynow False

插值{'线性', '较低', '较高', '中点', '最近'}

此可选参数指定当所需分位数位于两个数据点ij之间时要使用的插值方法:

  • 线性:i + (j - i) *fraction,其中fraction是由ij包围的索引的小数部分。

  • 下:

  • 较高:j .

  • 最近的:ij,以最接近的为准。

  • 中点:( i + j ) / 2。

方法{'single', 'table'}, 默认 'single'

是否计算每列(“单”)或所有列(“表”)的分位数。当“table”时,唯一允许的插值方法是“nearest”、“lower”和“higher”。

返回
系列或数据框
如果q是一个数组,将返回一个 DataFrame,其中

索引是q,列是 self 的列,值是分位数。

如果q是浮点数,则将返回一个系列,其中

索引是 self 的列,值是分位数。

也可以看看

core.window.rolling.Rolling.quantile

滚动分位数。

numpy.percentile

用于计算百分位数的 Numpy 函数。

例子

>>> 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='table'将计算所有列的分位数。

>>> 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还将计算 datetime 和 timedelta 数据的分位数。

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