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)