pandas.qcut#

pandas.qcut(x, q, labels=None, retbins=False, precision=3, duplicates='raise')[源代码]#

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

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

Parameters:
x1d ndarray 或 Series
qint 或类列表 float

分位数数量。10 代表十分位数,4 代表四分位数等。或者分位数数组,例如 [0, .25, .5, .75, 1.] 代表四分位数。

labelsarray 或 False,默认 None

用作生成分箱的标签。必须与生成的分箱长度相同。如果为 False,则仅返回分箱的整数指示符。如果为 True,则引发错误。

retbinsbool, optional

是否返回 (分箱, 标签)。如果分箱是标量,这可能会很有用。

precisionint, optional

存储和显示箱标签的精度。

duplicates{默认 ‘raise’, ‘drop’}, optional

如果箱的边界不唯一,则引发 ValueError 或删除非唯一边界。

Returns:
outCategorical 或 Series 或整数数组(如果 labels 为 False)

返回类型(Categorical 或 Series)取决于输入:如果输入是 Series,则返回 category 类型的 Series,否则返回 Categorical。当返回分类数据时,分箱表示为类别。

binsndarray of floats

仅当 retbins 为 True 时返回。

Notes

超出边界的值在生成的 Categorical 对象中将为 NA

Examples

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