gpt4 book ai didi

python - 在Python中对数据进行分类

转载 作者:行者123 更新时间:2023-11-30 09:20:14 25 4
gpt4 key购买 nike

Dataset

我有一个类似于上面的数据集,使用 read_csv 函数读入 python 中。我想做的是

  1. 将环列更改为类别列,其中 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[j][7]) = 3
    j=j+1

    什么是更有效的方法来做到这一点?

  2. 假设我想保留我的环列,并添加另一个包含类的列,最好的方法是什么?

最佳答案

我认为你可以使用cut :

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

关于python - 在Python中对数据进行分类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42508308/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com