首页 > 后端开发 > Python教程 > 如何在没有'get_dummies”和'numpy”的情况下将 Pandas 分类列转换为数字索引?

如何在没有'get_dummies”和'numpy”的情况下将 Pandas 分类列转换为数字索引?

Susan Sarandon
发布: 2024-10-27 22:51:02
原创
555 人浏览过

How to Convert Pandas Categorical Columns to Numerical Indices Without `get_dummies` and `numpy`?

将 Pandas 类别转换为数字

考虑带有分类列的 DataFrame,例如国家/地区代码:

cc | temp
US | 37.0
CA | 12.0
US | 35.0
AU | 20.0
登录后复制

要将这些类别转换为索引,避免使用 get_dummies 和 numpy,请考虑以下步骤:

  1. 对列进行分类:将分类列转换为分类类型:
df.cc = pd.Categorical(df.cc)
登录后复制
  1. 检索类别代码:使用 .codes 属性检索每个类别的整数代码:
df['code'] = df.cc.codes
登录后复制

生成的 DataFrame 将包含一个名为 code 的新列,带有数字索引:

   cc  temp  code
0  US  37.0     2
1  CA  12.0     1
2  US  35.0     2
3  AU  20.0     0
登录后复制

或者,您可以在不修改 DataFrame 的情况下获取类别代码:

df.cc.astype('category').codes
登录后复制
  1. 用作索引:如果需要,您可以使用分类列作为另一个 DataFrame 的索引:
df2 = pd.DataFrame(df.temp)
df2.index = pd.CategoricalIndex(df.cc)
登录后复制

以上是如何在没有'get_dummies”和'numpy”的情况下将 Pandas 分类列转换为数字索引?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板