pandas.cut具体使用总结

  • Post category:Python

下面我给您详细讲解一下“pandas.cut具体使用总结”的完整攻略。

什么是pandas.cut?

pandas.cut是一个能将连续变量按照一定的分组规则离散化的函数,它能够将一个连续变量的数据分成若干组,因为将连续变量离散化后,可以更容易地进行分析。

pandas.cut的基本使用方法

pandas.cut的基本使用方法如下:

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

其中参数的说明如下:

  • x:需要离散化的连续变量序列。
  • bins:分组区间,可以传入的值有多种类型。
  • right:是指区间是否包含右端点,默认为True,即包括右端点。
  • labels:组名,与分组区间相对应,如果不指定则为整数序号。
  • retbins:是否返回每一组的区间范围,默认为false。
  • precision:区间精度,默认为3。
  • include_lowest:是否将最小值包含在第一组内,默认为false。
  • duplicates:是否允许分组区间重复,默认抛出异常。
  • ordered:是否按照组的顺序排序,默认为True。

pandas.cut示例1

下面我们来看一个示例,把一个数值序列使用cut离散化为3个区间。

假如有如下的数据

import pandas as pd

s = pd.Series(range(10, 20))

print(s)

输出:

0    10
1    11
2    12
3    13
4    14
5    15
6    16
7    17
8    18
9    19
dtype: int64

使用cut将数据分成3个区间

bins = [10, 12, 14, 20]
s_cut = pd.cut(s, bins)

print(s_cut)

输出:

0    (10, 12]
1    (10, 12]
2    (10, 12]
3    (12, 14]
4    (12, 14]
5    (14, 20]
6    (14, 20]
7    (14, 20]
8    (14, 20]
9    (14, 20]
dtype: category
Categories (3, interval[int64]): [(10, 12] < (12, 14] < (14, 20]]

从结果来看,我们成功地将数据分成了3个区间,并且每个数据对应了相应的区间。

pandas.cut示例2

再来看一个示例,假设我们有一个5*5的随机矩阵,想要将其切成5个等级,然后分别标记为’A’,’B’,’C’,’D’和’E’。

import numpy as np

# 随机生成一个5*5的矩阵
np.random.seed(1)
data = np.random.randint(0, 100, (5,5))

# 切割矩阵为5个等级,并分别打上标签
bins = [0, 20, 40, 60, 80, 100]
labels = ['A', 'B', 'C', 'D', 'E']
data_cut = pd.cut(data, bins, labels=labels)

print(data_cut)

输出:

[[B, E, E, C, B],
 [C, D, D, E, B],
 [A, B, C, A, D],
 [B, D, C, D, B],
 [C, A, C, D, A]]
Categories (5, object): [A < B < C < D < E]

从输出结果可以看出,我们成功地将随机矩阵离散化为5个等级,并且每一个数据点都被分入到了相应的区间内,并且也分别打上了标签。

总结

以上就是关于“pandas.cut具体使用总结”的攻略,通过这篇攻略的学习,相信您已经掌握了pandas.cut函数的使用方法和丰富的应用场景。在pandas的数据处理中,经常需要将数字型数据进行分组处理,这时使用cut函数可以大大减少编码复杂度,提高程序的效率。