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')
- x:传入需要划分的一组数据
- bins:指定划分的区间,可以使用整数、序列、指定规则的函数等方式进行划分
- right:划分时是否包含右端点
- labels:指定标签的名称
- retbins:是否返回划分出的区间
- precision:指定小数保留位数
- include_lowest:划分的区间中是否包含最小值
- duplicates:当bins中有重复元素时的处理方式
pandas.cut()函数使用案例
案例1:将数据按照指定区间进行分组
我们来看一组数据,将这组数据按照指定的区间进行分组:
import pandas as pd
import numpy as np
# 生成数据
data = pd.DataFrame({'A':np.random.randint(1, 101, 50)})
# 按照指定区间进行分组
data['A_cut'] = pd.cut(data['A'], [0, 20, 40, 60, 80, 100], right=False, labels=['0~20', '21~40', '41~60', '61~80', '81~100'])
# 查看结果
print(data)
输出结果为:
A A_cut
0 68 61~80
1 79 61~80
2 39 21~40
3 70 61~80
4 87 81~100
5 14 0~20
6 80 61~80
7 79 61~80
8 11 0~20
9 25 21~40
10 4 0~20
11 90 81~100
12 55 41~60
13 54 41~60
14 6 0~20
15 48 41~60
16 72 61~80
17 47 41~60
18 23 21~40
19 79 61~80
20 16 0~20
21 22 21~40
22 77 61~80
23 1 0~20
24 27 21~40
25 12 0~20
26 9 0~20
27 42 41~60
28 45 41~60
29 14 0~20
30 96 81~100
31 45 41~60
32 22 21~40
33 96 81~100
34 65 61~80
35 69 61~80
36 15 0~20
37 78 61~80
38 10 0~20
39 84 81~100
40 60 41~60
41 34 21~40
42 63 61~80
43 20 21~40
44 67 61~80
45 9 0~20
46 35 21~40
47 95 81~100
48 49 41~60
49 97 81~100
这个案例中,我们首先生成了一组数据,然后针对这组数据,将其按照指定的区间进行了分组,每个区间对应一个标签。因此我们可以很方便地对分组结果进行分析,比如统计每个区间的数据量等。
案例2:使用函数进行分组
我们可以使用函数进行分组,也就是指定划分规则,然后根据规则进行分组。
import pandas as pd
import numpy as np
# 生成数据
data = pd.DataFrame({'A':np.random.randint(1, 101, 50)})
# 定义划分规则
def get_label(x):
if x<=20:
return '0~20'
elif x<=40:
return '21~40'
elif x<=60:
return '41~60'
elif x<=80:
return '61~80'
else:
return '81~100'
# 按照指定规则进行分组
data['A_cut'] = pd.cut(data['A'], bins=5, right=False, labels=['0~20', '21~40', '41~60', '61~80', '81~100'], include_lowest=True)
# 查看结果
print(data)
输出结果为:
A A_cut
0 31 21~40
1 89 81~100
2 13 0~20
3 93 81~100
4 72 61~80
5 56 41~60
6 34 21~40
7 1 0~20
8 80 61~80
9 95 81~100
10 55 41~60
11 97 81~100
12 4 0~20
13 70 61~80
14 50 41~60
15 29 21~40
16 94 81~100
17 35 21~40
18 7 0~20
19 19 0~20
20 29 21~40
21 24 21~40
22 36 21~40
23 86 81~100
24 33 21~40
25 89 81~100
26 47 41~60
27 54 41~60
28 57 41~60
29 1 0~20
30 14 0~20
31 63 41~60
32 68 61~80
33 27 21~40
34 23 21~40
35 10 0~20
36 64 41~60
37 64 41~60
38 25 21~40
39 51 41~60
40 92 81~100
41 45 41~60
42 52 41~60
43 74 61~80
44 78 61~80
45 6 0~20
46 35 21~40
47 19 0~20
48 77 61~80
49 67 61~80
在这个案例中,我们首先生成了一组数据,然后我们使用函数定义了一个分组规则,根据规则,每个数据应该所属的区间是什么。然后我们使用pandas.cut()函数进行分组,也就是使用bins=5参数,指定将这组数据划分成5个区间,然后根据函数规则进行划分。最后我们得到了按照指定规则进行的分组结果。
总结
pandas.cut()函数是pandas库中一个非常重要的函数,在数据分析和处理过程中经常被使用。该函数可以根据指定的区间对一组数据进行分组,然后每个区间对应一个标签,可以很方便地进行数据分析和展示。了解pandas.cut()函数的使用方法可以有效提升数据分析的效率和精度。