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

熊猫:将类别转换为数字

熊猫:将类别转换为数字

UYOU 2019-08-19 15:14:34
熊猫:将类别转换为数字假设我有一个数据框,其国家/地区如下:cc | tempUS | 37.0CA | 12.0US | 35.0AU | 20.0我知道有一个pd.get_dummies函数可以将这些国家/地区转换为“单热编码”。但是,我希望将它们转换为索引,以便我得到它cc_index = [1,2,1,3]。我假设有一种比使用get_dummies和numpy where子句更快的方法,如下所示:[np.where(x) for x in df.cc.get_dummies().values]使用'因子'在R中这样做有点容易,所以我希望大熊猫有类似的东西。
查看完整描述

3 回答

?
浮云间

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

如果您只希望将系列转换为整数标识符,则可以使用pd.factorize。


请注意,此解决方案pd.Categorical不会按字母顺序排序。所以第一个国家将被分配0。如果您想从头开始1,可以添加常量:


df['code'] = pd.factorize(df['cc'])[0] + 1


print(df)


   cc  temp  code

0  US  37.0     1

1  CA  12.0     2

2  US  35.0     1

3  AU  20.0     3

如果您希望按字母顺序排序,请指定sort=True:


df['code'] = pd.factorize(df['cc'], sort=True)[0] + 1 


查看完整回答
反对 回复 2019-08-19
  • 3 回答
  • 0 关注
  • 593 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信