个性化阅读
专注于IT技术分析

Pandas DataFrame.cut()用法例子

本文概述

当需要将数据值分段并将其分类到bin中时, 将调用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 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:下面的示例显示如何向箱中添加标签:

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 < Highs]

赞(0) 打赏
未经允许不得转载:srcmini » Pandas DataFrame.cut()用法例子
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!

 

觉得文章有用就打赏一下文章作者

微信扫一扫打赏