使用 OrdinalEncoder 转换分类值

2024-03-12

我有一个数据集,其中包含以下列:

No  Name  Sex  Blood  Grade  Height  Study
1   Tom   M    O      56     160     Math
2   Harry M    A      76     192     Math
3   John  M    A      45     178     English
4   Nancy F    B      78     157     Biology
5   Mike  M    O      79     167     Math
6   Kate  F    AB     66     156     English
7   Mary  F    O      99     166     Science

我想把它改成这样:

No  Name  Sex  Blood  Grade  Height  Study
1   Tom   0    0      56     160     0
2   Harry 0    1      76     192     0
3   John  0    1      45     178     1
4   Nancy 1    2      78     157     2
5   Mike  0    0      79     167     0
6   Kate  1    3      66     156     1
7   Mary  0    0      99     166     3

我知道有一个图书馆可以做到这一点

from sklearn.preprocessing import OrdinalEncoder

我已经尝试过但没有成功

enc = OrdinalEncoder()
enc.fit(df[["Sex","Blood", "Study"]])

谁能帮我找出我做错了什么以及如何做?


你就快到了!

基本上是fit方法,准备编码器(适合您的数据,即准备映射)但不转换数据。

你必须打电话transform转换数据,或使用fit_transform拟合并转换相同的数据。

enc = OrdinalEncoder()
enc.fit(df[["Sex","Blood", "Study"]])
df[["Sex","Blood", "Study"]] = enc.transform(df[["Sex","Blood", "Study"]])

或直接

enc = OrdinalEncoder()
df[["Sex","Blood", "Study"]] = enc.fit_transform(df[["Sex","Blood", "Study"]])

注意:这些值不会是您提供的值,因为 fit 方法在内部使用numpy.unique它给出的结果按字母顺序排序,而不是按出现顺序排序。

正如你可以看到的enc.categories_

[array(['F', 'M'], dtype=object),
 array(['A', 'AB', 'B', 'O'], dtype=object),
 array(['Biology', 'English', 'Math', 'Science'], dtype=object)]```

数组中的每个值都按其位置进行编码。 (F 将编码为 0 ,M 编码为 1)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 OrdinalEncoder 转换分类值 的相关文章

随机推荐

  • 调用 oncontextmenu 时 Firefox 浏览器的事件未定义

    我在右键单击页面中的按钮时显示上下文菜单 用于显示上下文菜单的代码是 window addEventListener contextmenu function e e preventDefault false 当我右键单击按钮时 调用的上下
  • 解决 git merge octopus 上的冲突

    章鱼合并是指合并2个以上的头 用户应该如何使用普通的三向合并工具比较文件 3 个文件被传递到合并工具 BASE LOCAL REMOTE 3 个头需要多少个以及什么组合 在这种情况下 您不应该使用章鱼合并 八达通合并仅应在不存在合并冲突或冲
  • setInterval 使用 Electron 一小时后停止

    希望有人能在这里指出我正确的方向 我的电子应用程序需要每 10 分钟左右执行一次 API 调用 目前 我在渲染器进程中使用 setInterval 循环来执行此操作 该循环每 10 分钟触发一次 它通常工作得很好 几个小时后似乎就停止了 我
  • Android Studio 在创建新活动时“发生 IDE 错误”

    更新见底部 由于 Android Studio 将自身更新到 v3 0 我无法创建新的 Activity 我收到此错误报告对话框 显示 2 个错误 我尝试了不同的项目 尝试清理项目 重新同步 gradle 重新启动计算机 卸载 重新安装 A
  • strdup():对警告感到困惑(“隐式声明”、“使指针...无需强制转换”、内存泄漏)

    当我编译下面的一小段代码 其中我们定义一个字符串 然后使用 strdup 来制作副本 时 我收到 3 个警告 来自 GCC 的 2 个编译器警告和来自 valgrind 的 1 个运行时警告 错误 我怀疑内存泄漏错误 由 valgrind
  • x86-SSE 中四个压缩单精度浮点到无符号双字的转换

    有没有办法将四个打包单精度浮点值转换为具有 SSE 扩展的 x86 中的四个双字 最接近的指令是CVTPS2PI 但它不能在两个 xmm 寄存器上执行 而是应该给出为CVTPS2PI MM XMM M64 如果我想要类似的东西怎么办
  • R metaMDS 排序距离

    我一直在对不同采样点的丰富物种数据集进行一些排序 我在用metaMDS 素食主义者可以做到这一点 通过此功能 您可以 直接输入群落数据 行中的站点和列中的物种 并指定您希望使用的距离类型 即 jaccard brays curtis euc
  • Linux 上的 OpenCL,集成英特尔图形芯片

    我想用OpenCL在 Debian 8 上 我读到在本页 http streamcomputing eu blog 2011 12 29 opencl hardware support Linux 上不支持 Intel 的 GPU 这篇文章
  • XCode 4.5 警告父/子类的类别之间的方法名称冲突

    我正在开发一个最初使用 XCode 4 0 构建的项目 然后迁移到使用 XCode 4 2 现在我已经测试了迁移到 XCode 4 5 并且收到了大量如下警告 instance method values in category from
  • 如何将模型数据对象数组转换为dataProvider

    假设我有模型User与其自身有多对多的关系 命名为friends so user gt friends or model gt friends在视图中 给了我一个数组User对象 我想将朋友显示为网格视图 但CGridView数据为data
  • 在二维动画上绘制可变大小和位置的圆圈

    我正在 Python 3 3 中使用 matplotlib 我有一个动画 2d 和 3d 窗口 我在上面画点 这些点代表物体 但不确定它们是否真的存在 所以我想围绕这些点画一个圆圈来显示不确定性 这种不确定性是变化的 所以底线是 我想在 2
  • JavaScript 中可以编写连续的嵌套函数吗?

    我知道这就是封闭的领域 但是可以连续调用嵌套的匿名函数吗 假设我有这个 function testing input var testing 0 function testing testing 1 return testing 我们可以有
  • 多列的加权平均值,按组(在 data.table 中)

    这个问题紧接着另一个问题组加权平均值 https stackoverflow com questions 14145859 weighted means by group and column 我想使用创建加权组内平均值data table
  • 自动更新AngularJS中的范围变量

    我目前正在使用 AngularJS 我想从服务返回一个变量 让作用域知道它何时发生变化 为了说明这一点 请查看 www angularjs org 中的示例 连接后端 粗略地 我们可以看到以下内容 var projects firebase
  • 如何使用 ITfoxtec 创建 IdP

    我有兴趣使用 SAML 创建 IdP 身份提供商 是否可以使用 ITfoxtec Nuget 创建完整的 IdP 功能 有 ASP Net C 的示例吗 是的 可以使用 ITfoxtec Identity Saml 2 0 库实施 IdP
  • 使用 WCF 将 Linq-to-Sql 对象发送到服务器时出错

    我正在尝试开发一个具有 2 层的系统 移动客户端和使用 LINQ to SQL 在数据库中存储信息的服务器 我想创建一个在服务器中存储任务的 WCF 服务器 因此它将从客户端接收任务并使用 LINQ to SQL 来存储它 为了执行此服务
  • 从键值对动态填充列

    我正在使用 xslt 文件进行样式设置 我以表格格式显示一些内容 我需要从预定义的键值对动态填充一列 请看下面的例子
  • 动态增加android中的相对布局大小

    我有一个相对布局 在其中显示页面和一些内容 当我缩放页面时 布局尺寸没有增加 我希望我的布局能够动态增加其大小 我该如何设置 我尝试用java代码来做 contentLayout getLayoutParams height x some
  • PySpark:如何分组、重新采样和前向填充空值?

    考虑以下数据集in Spark 我想以特定频率 例如 5 分钟 对日期重新采样 START DATE dt datetime 2019 8 15 20 33 0 test df pd DataFrame school id remote r
  • 使用 OrdinalEncoder 转换分类值

    我有一个数据集 其中包含以下列 No Name Sex Blood Grade Height Study 1 Tom M O 56 160 Math 2 Harry M A 76 192 Math 3 John M A 45 178 Eng