我有一个数据集,看起来像这样:
ID CD
1 70
2 51
3 54
4 55
5 57
6 14
我想将这些标签映射到类似70->1,(51,54,55(->2,57->3,否则为4。最终的数据集看起来像这样:
ID CD CD_New
1 70 1
2 51 2
3 54 2
4 55 2
5 57 3
6 14 4
如何在熊猫身上做到这一点?
使用np.select
import numpy as np
df = pd.read_clipboard()
conditions = [df['CD']==70, df['CD'].isin([51,54,55]), df['CD']==57]
choices = [1,2,3]
df['CD_New'] = np.select(conditions, choices, default=4)
df
结果:
ID CD CD_New
0 1 70 1
1 2 51 2
2 3 54 2
3 4 55 2
4 5 57 3
5 6 14 4