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

时间:2017-12-20 08:29:27

标签: python pandas

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

train_df["Sex"] = train_df["Sex"].apply(lambda sex: 0 if sex == 'male' else 1)

将字符串转换为整数。 如果变量的值超过2,则执行此操作的方法是什么, 像薪水分类为低/中/高?如何像上面那样分配价值?

2 个答案:

答案 0 :(得分:4)

按字典使用map

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

train_df["Sex"] = train_df["Sex"].map(d)

但如果需要按范围设置新值,则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

答案 1 :(得分:2)

您可以制作转换字典,例如:

values = {
    "low" : 0,
    "med" : 1,
    "high": 2
}
train_df["Sex"] = train_df["Sex"].apply(lambda level: values.get(level, 0))