DataFrame.cut函数

DataFrame.cut函数 首页 / Pandas入门教程 / DataFrame.cut函数

需要将数据值分段并将其分类到bin中时,将调用 cut()方法。它用于将连续变量转换为分类变量。它还可以将一Series元素隔离到单独的集合中。该方法仅适用于一维数组状对象。

如果我们有大量标量数据并对其进行一些统计分析,则可以使用 cut()方法。

cut - 语法

pandas.cut(x, bins, right=True, labels=None, retbins=False, precision=3, include_lowest=False, duplicates='raise')

cut - 参数

x       -  通常将数组表示为要作为bin的输入。该数组应为一维数组。

bins - 它是指 int 标量序列 IntervalIndex 值。将数据分为几组的标准如下:

  • int                                -  它定义了在 x 参数内的等宽bins数。我们还可以在两侧将 x 的参数扩大 .1 %,以包括 x 的最小值和最大值。
  • scalars sequence   - 主要定义允许非均匀宽度的bin边缘。
  • IntervalIndex            - 它是指要在函数中使用的确切bin。请注意,用于bins的 IntervalIndex 必须不重叠。
  • right                            -  它由一个布尔值组成,用于检查 bins 是否包括最右边。其默认值为True,当 bins 时,它将被忽略
  • labels                          -  它是一个可选参数,主要引用数组或布尔值。它的主要任务是为返回的标签指定标签标签的长度必须与产生的接纸架相同。如果我们将其值设置为False,则仅返回bins的整数指示符。如果bins是IntervalIndex,则忽略此参数。
  • retbins                       -  它是一个布尔值,用于检查是否返回bins。当将bin作为标量值提供时,这通常很有用。 retbins的默认值为False。
  • precision                   -  用于存储和显示bins标签。它由一个整数值组成,其默认值为 3
  • include_lowest        -  它是一个布尔值,用于检查第一个时间间隔是否应包含左值。
  • duplicates                 -  它是一个可选参数,用于确定在bin边不是唯一的情况下是引发ValueError还是删除重复的值。

cut - 返回值

此方法返回两个对象作为输出,如下所示:

  1. out: 它主要是指Categorical,Series或ndarray,它是类似数组的对象,代表每个值的相应bin。这些对象取决于标签的值。可能返回的值如下:
    • True       -  它是一个默认值,它返回Series或Categorical变量。这些对象中存储的值为Interval数据类型。
    • sequence of scalars  - 它还返回一个Series或Categorical变量。这些对象中存储的值是序列的类型。
    • False      -   false值返回一个整数ndarray。
  2. bins: 它主要是指ndarray

示例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 

祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)

技术教程推荐

从0开始学游戏开发 -〔蔡能〕

10x程序员工作法 -〔郑晔〕

手把手教你玩音乐 -〔邓柯〕

跟着高手学复盘 -〔张鹏〕

讲好故事 -〔涵柏〕

深入剖析Java新特性 -〔范学雷〕

遗留系统现代化实战 -〔姚琪琳〕

结构思考力 · 透过结构看思考 -〔李忠秋〕

AI大模型企业应用实战 -〔蔡超〕

好记忆不如烂笔头。留下您的足迹吧 :)