如何在python中将多值变量转换为整数[重复]

Posted

技术标签:

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

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

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

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

【问题讨论】:

使用地图(字典) 【参考方案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))

【讨论】:

以上是关于如何在python中将多值变量转换为整数[重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何在python中将有符号整数转换为无符号整数

如何在 Python 中将字符串转换为十六进制整数?

在java中将整数列表转换为整数数组[重复]

在python中将整数转换为二进制

如何在R中将两个变量(整数)转换为双精度?

在python中将列表转换为字符串[重复]