下面我就来详细讲解一下Pandas Cut的使用。
什么是Pandas Cut
Pandas Cut是一种将连续数据转换为分类数据的函数。它可将连续的数值数据分段,每一段转化为一个离散的分类,同时可以对这些离散的分类进行标记和排序。
Cut函数的语法
Pandas Cut函数的语法如下:
pandas.cut(x, bins, right=True, labels=None, retbins=False, precision=3, include_lowest=False, duplicates='raise')
其中,各个参数的含义如下:
x
:要分段的数据,必须为一维的数组或Series对象;bins
:指定分段的方式,可以是根据数据的数量分段,也可以是根据数据的范围分段;right
:bool型参数,默认是True,表示区间是否包含右端点;labels
:指定每个分段的标签名称;retbins
:bool型参数,默认是False,表示是否返回每个分段的阈值;precision
:int型参数,表示指定分段时的精度;include_lowest
:bool型参数,默认是False,表示是否包含最小值;duplicates
:处理重复值的方式,可以是raise、drop、ignore。
Cut函数的使用实例
下面,我就通过一个实例来演示Cut函数的使用。
假设我们现在有一个存储分数的DataFrame数据,如下所示:
import pandas as pd
import numpy as np
df = pd.DataFrame({"score": [51, 71, 78, 85, 90, 95, 98]})
print(df)
运行结果如下:
score
0 51
1 71
2 78
3 85
4 90
5 95
6 98
我们希望将这些分数按照一定的规则划分到若干个分段中,可以使用Pandas Cut进行处理。根据我们自己的需要,可以针对不同的数据集使用不同的分段规则。下面是三种不同的分段方式:
分段方式1:根据分数的范围划分
bins = [0, 60, 70, 80, 90, 100]
df['categories1'] = pd.cut(df['score'], bins)
print(df)
运行结果如下:
score categories1
0 51 (0, 60]
1 71 (70, 80]
2 78 (70, 80]
3 85 (80, 90]
4 90 (90, 100]
5 95 (90, 100]
6 98 (90, 100]
可以看到,我们按照分数的范围为[0, 60),[60, 70),[70, 80),[80, 90),[90, 100],分成了5个离散的分类。
分段方式2:根据平均数和标准差划分
mean = df['score'].mean()
std = df['score'].std()
bins = [-np.inf, mean - std, mean, mean + std, np.inf]
labels = ['low', 'avg-', 'avg+', 'high']
df['categories2'] = pd.cut(df['score'], bins, labels=labels)
print(df)
运行结果如下:
score categories1 categories2
0 51 (0, 60] low
1 71 (70, 80] avg-
2 78 (70, 80] avg+
3 85 (80, 90] high
4 90 (90, 100] high
5 95 (90, 100] high
6 98 (90, 100] high
可以看到,我们针对这些分数,根据平均数和标准差,分成了四个离散的分类,并对这些分类进行了标记。
分段方式3:根据数据的数量划分
bins = 3
df['categories3'] = pd.cut(df['score'], bins)
print(df)
运行结果如下:
score categories1 categories2 categories3
0 51 (0, 60] low (50.975, 69.0]
1 71 (70, 80] avg- (69.0, 87.0]
2 78 (70, 80] avg+ (69.0, 87.0]
3 85 (80, 90] high (69.0, 87.0]
4 90 (90, 100] high (87.0, 100.0]
5 95 (90, 100] high (87.0, 100.0]
6 98 (90, 100] high (87.0, 100.0]
可以看到,我们针对这些分数,根据数据的数量,分成了三个离散的分类。
小结
Pandas Cut函数是一种将连续数据转换为分类数据的函数,并且可以根据需求实现不同的分段规则。除了本文介绍的三种方式,还可以根据自己的需求进行划分,灵活运用Cut函数能够帮助我们更好地理解和分析数据。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Pandas Cut–从连续到分类 - Python技术站