mars.dataframe.qcut#

mars.dataframe.qcut(x, q, labels=None, retbins=False, precision=3, duplicate='raise')[来源]#

基于分位数的离散化函数。

根据排名或样本分位数将变量离散化为相等大小的桶。例如,1000个值对于10个分位数将生成一个分类对象,指示每个数据点的分位数所属。

Parameters
  • x (1d 张量系列) –

  • q (int类列表float) – 分位数的数量。10表示十分位数,4表示四分位数,等等。或者提供分位数的数组,例如 [0, .25, .5, .75, 1.] 用于四分位数。

  • labels (数组False, 默认为 None) – 用作结果箱的标签。必须与结果箱的长度相同。如果为 False,仅返回箱的整数指示。如果为 True,将引发错误。

  • retbins (bool, 可选) – 是否返回 (bins, labels)。如果 bins 是一个标量,这个参数可能会很有用。

  • precision (int, 可选) – 存储和显示箱标签的精度。

  • duplicates ({默认 'raise', 'drop'}, 可选) – 如果区间边界不是唯一的,抛出 ValueError 或丢弃非唯一值。

Returns

  • out (如果标签为假,则为分类或系列或整数的张量) – 返回类型(分类或系列)取决于输入:如果输入是系列,则为类别类型的系列,否则为分类。当返回分类数据时,区间被表示为类别。

  • bins (浮点数的张量) – 仅在retbins为真时返回。

备注

超出范围的值将在生成的分类对象中为NA

示例

>>> import mars.dataframe as md
>>> md.qcut(range(5), 4).execute()
... 
[(-0.001, 1.0], (-0.001, 1.0], (1.0, 2.0], (2.0, 3.0], (3.0, 4.0]]
Categories (4, interval[float64]): [(-0.001, 1.0] < (1.0, 2.0] ...
>>> md.qcut(range(5), 3, labels=["good", "medium", "bad"]).execute()
... 
[good, good, medium, bad, bad]
Categories (3, object): [good < medium < bad]
>>> md.qcut(range(5), 4, labels=False).execute()
array([0, 0, 1, 2, 3])