如何使用所需的代码对分类列进行编码?

时间:2018-11-12 10:53:32

标签: python pandas scikit-learn

我有一个这样的数据框:

df = pd.DataFrame({'months': ['FEBRUARY', 'MARCH', 'MAY', 'DECEMBER', 'MAY']})

我想得到:

[['JANUARY', 1], ['FEBRUARY', 2], ['MARCH', 3]]

我认为这应该非常容易,但是,当您尝试使用sklearn的这个虚拟示例时:

from sklearn.preprocessing import OneHotEncoder
enc = OneHotEncoder(handle_unknown='ignore')
X = [[1,'Male'], [ 3,'Female']]
enc.fit(X)

我遇到下一个错误:

 ValueError: could not convert string to float: 'Male'

提前谢谢。

1 个答案:

答案 0 :(得分:1)

您可以使用map

gender = {'male':1,'female':3}
df.gender.map(gender)