python中的数据分类
我有一个类似上面的数据集,使用read_csv函数读入python。我想做的是python中的数据分类,python,pandas,machine-learning,Python,Pandas,Machine Learning,我有一个类似上面的数据集,使用read_csv函数读入python。我想做的是 将“环”列更改为“类”列,其中1-5个环是“类1”,5-10个环是“类2”,依此类推。现在我有一个类似这样的for循环 while j<4177 : if (X[j][7]) < 9: (X[j][7]) = 1 elif (X[j][7]) is 9 | (X[j][8]) is 10: (X[j][7]) = 2 else: (X
while j<4177 :
if (X[j][7]) < 9:
(X[j][7]) = 1
elif (X[j][7]) is 9 | (X[j][8]) is 10:
(X[j][7]) = 2
else:
(X[j][7]) = 3
j=j+1
而j我认为您可以使用:
我认为你可以使用:
np.random.seed(100)
df = pd.DataFrame(np.random.randint(20, size=(20,2)), columns=['a','ring'])
print (df)
a ring
0 8 3
1 7 15
2 16 10
3 2 2
4 2 14
5 2 17
6 16 15
7 4 11
8 16 9
9 2 12
10 4 1
11 13 19
12 4 4
13 3 7
14 17 15
15 1 14
16 7 16
17 2 9
18 19 2
19 14 17
classes = 4
bins = np.linspace(0, classes * 5, classes + 1)
labels=['class ' + str(i + 1) for i in range(classes)]
print (bins)
[ 0. 5. 10. 15. 20.]
print (labels)
['class 1', 'class 2', 'class 3', 'class 4']
df['label'] = pd.cut(df['ring'], bins=bins, labels=labels)
print (df)
a ring label
0 8 3 class 1
1 7 15 class 3
2 16 10 class 2
3 2 2 class 1
4 2 14 class 3
5 2 17 class 4
6 16 15 class 3
7 4 11 class 3
8 16 9 class 2
9 2 12 class 3
10 4 1 class 1
11 13 19 class 4
12 4 4 class 1
13 3 7 class 2
14 17 15 class 3
15 1 14 class 3
16 7 16 class 4
17 2 9 class 2
18 19 2 class 1
19 14 17 class 4