pandas.cut

pandas.cut(x, bins, right=True, labels=None, retbins=False, precision=3, include_lowest=False)[source]

x的每个值所属的半开箱的返回索引。

参数:

x:array-like

要分箱的输入数组。它必须是一维的。

bin:int或标量序列

如果bins是一个int,它定义在x范围内的等宽单元的数量。然而,在这种情况下,x的范围在每一侧延伸0.1%以包括x的最小值或最大值。如果bin是一个序列,它定义了允许非均匀bin宽度的bin边缘。在这种情况下不进行x的范围的扩展。

right:bool,可选

指示仓是否包括最右边缘。如果right == True(默认),则仓[1,2,3,4]指示(1,2],(2,3],(3,4]。

labels:array或boolean,默认值为无

用作生成的仓的标签。必须与生成的仓的长度相同。如果为False,则只返回bin的整数指示符。

retbins:bool,可选

是否返回bin。如果bin作为标量给出,则可能有用。

precision:int

存储和显示容器标签的精度

include_lowest:bool

第一个间隔是否应该包含左边。

返回:

out:分类或系列或整数数组(如果标签为False)

返回类型(分类或系列)取决于输入:a系列类型类型,如果输入是一个系列其他分类。返回分类数据时,分档表示为类别。

货仓:ndarray的浮点数

仅在retbins为True时返回。

笔记

cut函数可用于从连续变量转到分类变量。例如,cut可以将年龄转换为年龄范围组。

结果中的任何NA值都将为NA。在结果分类对象中的超出值将为NA

例子

>>> pd.cut(np.array([.2, 1.4, 2.5, 6.2, 9.7, 2.1]), 3, retbins=True)
([(0.191, 3.367], (0.191, 3.367], (0.191, 3.367], (3.367, 6.533],
  (6.533, 9.7], (0.191, 3.367]]
Categories (3, object): [(0.191, 3.367] < (3.367, 6.533] < (6.533, 9.7]],
array([ 0.1905    ,  3.36666667,  6.53333333,  9.7       ]))
>>> pd.cut(np.array([.2, 1.4, 2.5, 6.2, 9.7, 2.1]), 3,
           labels=["good","medium","bad"])
[good, good, good, medium, bad, good]
Categories (3, object): [good < medium < bad]
>>> pd.cut(np.ones(5), 4, labels=False)
array([1, 1, 1, 1, 1], dtype=int64)
Scroll To Top