python - 如何使用我想要的代码对分类列进行编码?

标签 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'

提前致谢。

最佳答案

您可以使用 map

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

关于python - 如何使用我想要的代码对分类列进行编码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53260620/

相关文章:

python django 电子邮件设置正确的发件人 gunicorn

python - Scipy 频谱图与 Matlab 频谱图

python - 从 Python DataFrame 的行/列数据中配对

python - 客户端排序查询集,Django + TwitterBoostrap

python - 一个Python脚本,可以自动在网站中输入一些文本并获取其源代码

python pandas 没有连接到空 DataFrame 中

python - 如何在 Python pandas 中使用 pd.melt

python-3.x - '损失: nan' during training of Neural Network in Keras

python - 网格搜索 SVC : IndexError: too many indices for array

python - 按列向量化二维字符数组