pandas.DataFrame.quantile#

DataFrame.quantile(q=0.5, axis=0, numeric_only=NoDefault.no_default, interpolation='linear')[源代码]#

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

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

介于0<=Q<=1之间的值,要计算的分位数。

axis{0,1,‘索引’,‘列’},默认0

对于行式等于0或‘index’,对于列式等于1或‘Columns’。

numeric_only布尔值,默认为True

如果为False,则还将计算日期时间和时间增量数据的分位数。

interpolation{‘线性’,‘较低’,‘较高’,‘中点’,‘最近’}

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

  • 线性: i + (j - i) * fraction ,在哪里 fraction 是索引的小数部分,由 ij

  • 较低: i

  • 更高: j

  • 最近: ij 以最近者为准。

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

退货
系列或DataFrame
如果 q 是数组,则将返回DataFrame,其中

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

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

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

参见

core.window.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

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