Pandas DataFrame.cut()用法例子

本文概述

  • 句法
  • 参数
  • 退货
当需要将数据值分段并将其分类到bin中时, 将调用cut()方法。它用于将连续变量转换为分类变量。它还可以将元素数组分离到单独的容器中。该方法仅适用于一维数组状对象。
【Pandas DataFrame.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还是删除重复值。
退货此方法返回两个对象作为输出, 如下所示:
  1. out:主要是指Categorical, Series或ndarray, 它是类似数组的对象, 代表每个值对应的bin。这些对象取决于标签的值。可能返回的值如下:
    • True:这是一个默认值, 它返回Series或Categorical变量。这些对象中存储的值是” 间隔” 数据类型。
    • 标量序列:它还返回一个Series或Categorical变量。这些对象中存储的值是序列的类型。
    • False:false值返回整数的ndarray。
  2. bins:主要是指ndarray
示例1:下面的示例将数字划分为bin:
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())

输出
num04813627324255261375879251010numnum_bins048(1.0, 25.0]136(1.0, 25.0]27(1.0, 25.0]32(1.0, 25.0]425NaN52(1.0, 25.0]613(1.0, 25.0]75(1.0, 25.0]87(1.0, 25.0]925(1.0, 25.0]1010NaN[(1.0, 25.0], NaN]Categories (1, interval[int64]): [(1, 25]]

示例2:下面的示例显示如何向箱中添加标签:
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())

输出
num09192439445762numnums_labels09Highs19Highs24Lows39Highs44Lows57Highs62Lows[Highs, Lows]Categories (2, object): [Lows < Highs]

    推荐阅读