如果我有一个带有两个值的变量(例如,性别可以是男性或女性),我会使用类似的代码,
train_df["Sex"] = train_df["Sex"].apply(lambda sex: 0 if sex == 'male' else 1)
Run Code Online (Sandbox Code Playgroud)
将字符串转换为整数。如果变量采用 2 个以上的值,例如分类为低/中/高的薪水,有什么方法可以做到?如何像上面一样赋值?
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)
| 归档时间: |
|
| 查看次数: |
937 次 |
| 最近记录: |