Skip to main content
 首页 » 编程设计

python之如何用另一个分类变量列表替换不同的分类变量

2025年05月04日18虾米哥

我有一列的分类值为 [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