本文概述
当需要将数据值分段并将其分类到bin中时, 将调用cut()方法。它用于将连续变量转换为分类变量。它还可以将元素数组分离到单独的容器中。该方法仅适用于一维数组状对象。
如果我们有大量标量数据并对其进行一些统计分析, 则可以使用cut()方法。
句法
pandas.cut(x, bins, right=True, labels=None, retbins=False, precision=3, include_lowest=False, duplicates='raise')
参数
x:通常将数组称为要作为bin的输入。该数组应为一维数组。
bins:它是指一个int, 标量序列或IntervalIndex值, 这些值定义用于分割的bin边缘。大多数时候, 我们拥有非常大规模的数值数据。因此, 我们可以将这些值分组到bin中, 以轻松执行描述性统计信息, 作为数据模式的概括。将数据分为几组的标准如下:
- int:它定义了x范围内的等宽槽数。我们还可以在两侧将x的范围扩大0.1%, 以包括x的最小值和最大值。
- 标量序列:主要定义非均匀宽度允许的面元边缘。
- IntervalIndex:它是指要在函数中使用的确切bin。应当注意, bin的IntervalIndex必须不重叠。
- 右:它由一个布尔值组成, 该布尔值检查垃圾箱是否包含最右边。默认值为True, 当bins为
- 标签:这是一个可选参数, 主要引用数组或布尔值。它的主要任务是为返回的标签指定标签。标签的长度必须与生成的垃圾箱相同。如果将其值设置为False, 则仅返回垃圾箱的整数指示符。如果bins是IntervalIndex, 则忽略此参数。
- retbins:它是一个布尔值, 它检查是否返回垃圾箱。当将bin作为标量值提供时, 这通常很有用。 retbins的默认值为False。
- 精度:用于存储和显示垃圾箱标签。它由具有默认值3的整数值组成。
- include_lowest:它包含一个布尔值, 该布尔值用于检查第一个间隔是否应为左包含性。
- 重复项:这是一个可选参数, 用于确定在bin边不是唯一的情况下是引发ValueError还是删除重复值。
退货
此方法返回两个对象作为输出, 如下所示:
- out:主要是指Categorical, Series或ndarray, 它是类似数组的对象, 代表每个值对应的bin。这些对象取决于标签的值。可能返回的值如下:
- True:这是一个默认值, 它返回Series或Categorical变量。这些对象中存储的值是”间隔”数据类型。
- 标量序列:它还返回一个Series或Categorical变量。这些对象中存储的值是序列的类型。
- False:false值返回整数的ndarray。
- bins:主要是指ndarray
示例1:下面的示例将数字划分为bin:
import pandas as pd
import numpy as np
info_nums = pd.DataFrame({'num': np.random.randint(1, 50, 11)})
print(info_nums)
info_nums['num_bins'] = pd.cut(x=df_nums['num'], bins=[1, 25, 50])
print(info_nums)
print(info_nums['num_bins'].unique())
输出
num
0 48
1 36
2 7
3 2
4 25
5 2
6 13
7 5
8 7
9 25
10 10
num num_bins
0 48 (1.0, 25.0]
1 36 (1.0, 25.0]
2 7 (1.0, 25.0]
3 2 (1.0, 25.0]
4 25 NaN
5 2 (1.0, 25.0]
6 13 (1.0, 25.0]
7 5 (1.0, 25.0]
8 7 (1.0, 25.0]
9 25 (1.0, 25.0]
10 10 NaN
[(1.0, 25.0], NaN]
Categories (1, interval[int64]): [(1, 25]]
示例2:下面的示例显示如何向箱中添加标签:
import pandas as pd
import numpy as np
info_nums = pd.DataFrame({'num': np.random.randint(1, 10, 7)})
print(info_nums)
info_nums['nums_labels'] = pd.cut(x=info_nums['num'], bins=[1, 7, 10], labels=['Lows', 'Highs'], right=False)
print(info_nums)
print(info_nums['nums_labels'].unique())
输出
num
0 9
1 9
2 4
3 9
4 4
5 7
6 2
num nums_labels
0 9 Highs
1 9 Highs
2 4 Lows
3 9 Highs
4 4 Lows
5 7 Highs
6 2 Lows
[Highs, Lows]
Categories (2, object): [Lows < Highs]
来源:
https://www.srcmini02.com/30925.html