为了账号安全,请及时绑定邮箱和手机立即绑定

将分类列转换为特定整数

将分类列转换为特定整数

慕的地10843 2021-10-10 13:56:02
我有一堆数据框,其中一个分类列定义了性别(M/F)。我想将整数 1 分配给男性,将 2 分配给女性。我有以下代码 cat 将它们编码为 0 和 1df4["Sex"] = df4["Sex"].astype('category')df4.dtypesdf4["Sex_cat"] = df4["Sex"].cat.codesdf4.head()  但我特别需要让 M 为 1,F 为 2。有没有一种简单的方法可以将特定整数分配给类别?
查看完整描述

3 回答

?
犯罪嫌疑人X

TA贡献2080条经验 获得超4个赞

IUC:

df4['Sex'] = df4['Sex'].map({'M':1,'F':2})

现在:

print(df4)

将是理想的结果。


查看完整回答
反对 回复 2021-10-10
?
HUH函数

TA贡献1836条经验 获得超4个赞

如果您需要强加特定的顺序,您可以使用pd.Categorical

c = pd.Categorical(df["Sex"], categories=['M','F'], ordered=True)

这确保“M”被赋予最小值,“F”次之,依此类推。然后,您只需访问codes并添加 1。

df['Sex_cat'] = c.codes + 1

这是更好地使用pd.Categoricalastype('category')如果你想在什么类别被指定什么代码更好的控制。


查看完整回答
反对 回复 2021-10-10
?
料青山看我应如是

TA贡献1772条经验 获得超8个赞

您还可以将 lambda 与 apply 结合使用:

df4['sex'] = df4['sex'].apply(lambda x : 1 if x=='M' else 2)


查看完整回答
反对 回复 2021-10-10
  • 3 回答
  • 0 关注
  • 196 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号