mars.dataframe.DataFrame.quantile#

DataFrame.quantile(q=0.5, axis=0, numeric_only=True, interpolation='linear')#

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

Parameters
  • q (浮点数类数组, 默认值 0.5 (50% 分位数)) – 值在 0 <= q <= 1 之间,要计算的分位数。

  • axis ({0, 1, 'index', 'columns'} (默认值 0)) – 等于 0 或 'index' 用于按行,1 或 'columns' 用于按列。

  • numeric_only (bool, default True) – 如果为 False,将计算 datetime 和 timedelta 数据的分位数。

  • 内插 ({'线性', '下限', '上限', '中点', '最邻近'}) –

    这个可选参数指定了在所需分位数位于两个数据点 ij 之间时要使用的内插方法: * 线性: i + (j - i) * fraction,其中 fraction

    ij 包围的索引的小数部分。

    • 下限: i

    • 上限: j

    • 最邻近: ij,看哪个更近。

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

Returns

如果 q 是一个数组或张量,将返回一个数据框,其中

索引为 q,列为自身的列,值为分位数。

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

索引为自身的列,值为分位数。

Return type

序列数据框

另请参阅

core.window.Rolling.quantile

滚动分位数。

numpy.percentile

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

示例

>>> import mars.dataframe as md
>>> df = md.DataFrame(np.array([[1, 1], [2, 10], [3, 100], [4, 100]]),
...                   columns=['a', 'b'])
>>> df.quantile(.1).execute()
a    1.3
b    3.7
Name: 0.1, dtype: float64
>>> df.quantile([.1, .5]).execute()
       a     b
0.1  1.3   3.7
0.5  2.5  55.0

指定 numeric_only=False 也会计算 datetime 和 timedelta 数据的分位数。

>>> df = md.DataFrame({'A': [1, 2],
...                    'B': [md.Timestamp('2010'),
...                          md.Timestamp('2011')],
...                    'C': [md.Timedelta('1 days'),
...                          md.Timedelta('2 days')]})
>>> df.quantile(0.5, numeric_only=False).execute()
A                    1.5
B    2010-07-02 12:00:00
C        1 days 12:00:00
Name: 0.5, dtype: object