pandas.qcut#
- pandas.qcut(x, q, labels=None, retbins=False, precision=3, duplicates='raise')[源代码][源代码]#
基于分位数的离散化函数。
将变量离散化为基于等级或基于样本分位数的等大小桶。例如,1000个值分为10个分位数将生成一个指示每个数据点分位数成员资格的分类对象。
- 参数:
- x1d ndarray 或 Series
输入要离散化的 Numpy 数组或 pandas Series 对象。
- qint 或类似列表的 float
分位数的数量。10 表示十分位数,4 表示四分位数,等等。或者分位数数组,例如 [0, .25, .5, .75, 1.] 表示四分位数。
- 标签数组或False,默认None
用作结果箱的标签。必须与结果箱的长度相同。如果为 False,则仅返回箱的整数指示符。如果为 True,则引发错误。
- retbinsbool, 可选
是否返回 (bins, labels)。如果 bins 以标量形式给出,这可能会很有用。
- 精度int, 可选
存储和显示箱标签的精度。
- 重复项{默认 ‘raise’, ‘drop’}, 可选
如果 bin 边缘不唯一,引发 ValueError 或删除非唯一项。
- 返回:
- 出如果 labels 为 False,则为整数的分类或序列或数组
返回类型(Categorical 或 Series)取决于输入:如果输入是 Series,则返回类型为 category 的 Series,否则返回 Categorical。当返回分类数据时,箱子表示为类别。
- bins浮点数的 ndarray
仅当 retbins 为 True 时返回。
参见
cut
将值分箱到离散区间中。
Series.quantile
返回给定分位数的值。
注释
超出范围的值在生成的 Categorical 对象中将为 NA
例子
>>> pd.qcut(range(5), 4) ... [(-0.001, 1.0], (-0.001, 1.0], (1.0, 2.0], (2.0, 3.0], (3.0, 4.0]] Categories (4, interval[float64, right]): [(-0.001, 1.0] < (1.0, 2.0] ...
>>> pd.qcut(range(5), 3, labels=["good", "medium", "bad"]) ... [good, good, medium, bad, bad] Categories (3, object): [good < medium < bad]
>>> pd.qcut(range(5), 4, labels=False) array([0, 0, 1, 2, 3])