需要将数据值分段并将其分类到bin中时,将调用 cut()方法。它用于将连续变量转换为分类变量。它还可以将一Series元素隔离到单独的集合中。该方法仅适用于一维数组状对象。
如果我们有大量标量数据并对其进行一些统计分析,则可以使用 cut()方法。
pandas.cut(x, bins, right=True, labels=None, retbins=False, precision=3, include_lowest=False, duplicates='raise')
x - 通常将数组表示为要作为bin的输入。该数组应为一维数组。
bins - 它是指 int ,标量序列或 IntervalIndex 值。将数据分为几组的标准如下:
此方法返回两个对象作为输出,如下所示:
示例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 :以下示例显示了如何将标签添加到bins中:
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
祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)