我有一列的分类值为 [0 1 2 3 4 5]。我想按以下方式仅用 [1 2 3 4] 替换这些值:
1 -> 1
2 -> 2
3 -> 3
0,4,5 -> 3
excel分类图
我试过这段代码:
bins = [0, 1, 2, 3, 4, np.inf]
names = ['4','1','2','3','4']
data['NEW_EDU'] = pd.cut(data['EDU'], bins, labels=names)
但我得到- ValueError:分类类别必须是唯一的
请您参考如下方法:
您只需要使用 isin()
df.loc[df['EDU'].isin([0,4,5])] = 3
例子:
df = pd.DataFrame({
'EDU': [1,2,3,4,5,0,4,2]
})
输出:
EDU
0 1
1 2
2 3
3 4
4 5
5 0
6 4
7 2
使用
df.loc[df['EDU'].isin([0,4,5])] = 3
输出:
EDU
0 1
1 2
2 3
3 3
4 3
5 3
6 3
7 2
