Pandas 教程-Pandas DataFrame.cut()
当您需要将数据值分段并排序到不同的箱中时,调用 cut() 方法。它用于将连续变量转换为分类变量。它还可以将元素数组分隔成单独的箱。该方法仅适用于一维数组样式的对象。
如果我们有一组大量的标量数据,并对其进行一些统计分析,我们可以使用 cut() 方法。
语法:
pandas.cut(x, bins, right=True, labels=None, retbins=False, precision=3, include_lowest=False, duplicates='raise')
参数:
x: 通常是指作为输入的数组,即将进行箱分的数组。该数组应为一维数组。
bins: 它是一个 int、标量序列 或 IntervalIndex 值,用于定义分段的箱边界。大多数情况下,我们有一个非常大规模的数值数据。因此,我们可以将值分组到箱中,以便轻松执行数据的描述性统计作为数据模式的泛化。将数据分为组的标准如下:
int: 它定义了在 x 的范围内的相等宽度箱的数量。我们也可以在 x 的范围的两侧扩展 .1% 来包含 x 的最小值和最大值。
标量序列: 它主要定义了允许非均匀宽度的箱边界。
IntervalIndex: 它指的是在函数中要使用的确切箱。应注意,箱的 IntervalIndex 必须是非重叠的。
right: 它包含一个布尔值,用于检查 bins 是否包含最右边的边缘。其默认值为 True,当 bins 是
labels: 这是一个 可选 参数,主要是指数组或布尔值。它的主要任务是为返回的指定标签。标签的长度必须与生成的箱的长度相同。如果将其值设置为 False,则仅返回整数指示符。如果 bins 是 IntervalIndex,则会忽略此参数。
retbins: 它是一个布尔值,用于检查是否返回箱。当 bins 作为标量值提供时,通常很有用。retbins 的默认值为 False。
precision: 它用于存储和显示箱标签。它包含一个整数值,默认值为 3。
include_lowest: 它包含一个布尔值,用于检查第一个间隔是否应包含在内。
duplicates: 这是一个 可选 参数,决定是否引发 ValueError 或丢弃重复值,如果箱边界不是唯一的。
专属福利 👉点击领取:最全Python资料合集
返回值:
此方法返回两个对象作为输出,分别是:
1.out:它主要是指一个 Categorical、Series 或 ndarray,这是一个数组样式的对象,表示每个值的相应箱。这些对象取决于 labels 的值。可能返回的值如下:
True: 默认值,返回 Series 或 Categorical 变量。这些对象中存储的值是 Interval 数据类型。
标量序列: 它还返回 Series 或 Categorical 变量。这些对象中存储的值是序列的类型。
False: false 值返回一个整数数组。
2.bins: 它主要是指一个 ndarray
import pandas as pdimport numpy as npinfo_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())
num0 481 362 73 24 255 26 137 58 79 2510 10num num_bins0 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 NaN5 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]]
import pandas as pdimport numpy as npinfo_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())
num0 91 92 43 94 45 76 2num nums_labels0 9 Highs1 9 Highs2 4 Lows3 9 Highs4 4 Lows5 7 Highs6 2 Lows[Highs, Lows]Categories (2, object): [Lows < Highs]
热门推荐