【问题标题】:How to convert multi value variables into integer in python [duplicate]如何在python中将多值变量转换为整数[重复]
【发布时间】:2018-06-02 18:12:09
【问题描述】:

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

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

将字符串转换为整数。 如果变量取超过 2 个值,该怎么办? 像薪水归类为低/中/高?与上面类似如何赋值?

【问题讨论】:

  • 使用地图(字典)

标签: python pandas


【解决方案1】:

按字典使用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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-26
      • 2017-12-17
      • 2021-01-26
      • 2018-07-20
      • 2013-04-20
      相关资源
      最近更新 更多