📅  最后修改于: 2020-10-29 01:55:24             🧑  作者: Mango
当需要将数据值分段并将其分类到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中,以轻松执行描述性统计信息,作为数据模式的概括。将数据分为几组的标准如下:
此方法返回两个对象作为输出,如下所示:
示例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]