下面我给您详细讲解一下“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函数可以大大减少编码复杂度,提高程序的效率。