Python技术迷

Pandas 教程-Pandas DataFrame.cut()

 整理:python架构师

当您需要将数据值分段并排序到不同的箱中时,调用 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

示例1: 下面的示例将数字分成箱段:
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())
输出:
    num0    481    362     73     24    255     26    137     58     79    2510   10    num     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]]
示例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())
输出:
   num0    91    92    43    94    45    76    2   num  nums_labels0    9        Highs1    9        Highs2    4        Lows3    9        Highs4    4        Lows5    7        Highs6    2        Lows[Highs, Lows]Categories (2, object): [Lows < Highs]
Image
 1
Image
热门推荐

Image