如何在python中将多值变量转换为整数

0 python pandas

如果我有一个带有两个值的变量(例如,性别可以是男性或女性),我会使用类似的代码,

train_df["Sex"] = train_df["Sex"].apply(lambda sex: 0 if sex == 'male' else 1)
Run Code Online (Sandbox Code Playgroud)

将字符串转换为整数。如果变量采用 2 个以上的值,例如分类为低/中/高的薪水,有什么方法可以做到?如何像上面一样赋值?

jez*_*ael 5

map按字典使用:

d = {
    'male': 0,
    'female': 1,
    'other': 2
}

train_df["Sex"] = train_df["Sex"].map(d)
Run Code Online (Sandbox Code Playgroud)

但是,如果需要按范围划分的新值,Salary则更好cut

train_df = pd.DataFrame({'Salary': [100,200,300,500]})


bins = [0, 200, 400, np.inf]
labels=['low','medium','high']
train_df['label'] = pd.cut(train_df['Salary'], bins=bins, labels=labels)
print (train_df)
   Salary   label
0     100     low
1     200     low
2     300  medium
3     500    high
Run Code Online (Sandbox Code Playgroud)