pandas 中对特征进行硬编码和onehot编码的实现


Posted in Python onDecember 20, 2019

首先介绍两种编码方式硬编码和onehot编码,在模型训练所需要数据中,特征要么为连续,要么为离散特征,对于那些值为非数字的离散特征,我们要么对他们进行硬编码,要么进行onehot编码,转化为模型可以用于训练的特征

初始化一个DataFrame

import pandas as pd
df = pd.DataFrame([
 ['green', 'M', 20, 'class1'],
 ['red', 'L', 21, 'class2'],
 ['blue', 'XL',30, 'class3']])
df.columns = ['color', 'size', 'weight', 'class label']

pandas 中对特征进行硬编码和onehot编码的实现

硬编码:

将feature的值从0(或者1)开始进行连续编码,比如color进行硬编码,color的值有三个,分别为编码为1,2,3

可以用如下操作,对color字段下的值进行硬编码

colorMap = {elem:index+1 for index,elem in enumerate(set(df["color"]))}
df['color'] = df['color'].map(colorMap)

这样可以进行硬编码了,之前我的写法是,先生成map,然后对每一行进行apply,显然没有上述代码简便

onehot编码:

将某个字段下所有值横向展开,对于每条数据,其在对应展开的值上的值就是1,听起来比较绕口,看下面的例子就知道了,python中,pandas 用get_dummies()方法即可

data1 = pd.get_dummies(df[["color"]])

pandas 中对特征进行硬编码和onehot编码的实现

如果要对多个feature 进行onehot,这样即可df[[fea1,fea2..]]

对于onehot以后的数据,如果需要原有的数据合并,直接拿原来的join onehot的数据即可

res = df.join(data1)

pandas 中对特征进行硬编码和onehot编码的实现

join操作默认是根据index来进行join的,而get_dummies()不会改变index

以上这篇pandas 中对特征进行硬编码和onehot编码的实现就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python处理图片之PIL模块简单使用方法
May 11 Python
插入排序_Python与PHP的实现版(推荐)
May 11 Python
python删除服务器文件代码示例
Feb 09 Python
CentOS7下python3.7.0安装教程
Jul 30 Python
利用python修改json文件的value方法
Dec 31 Python
python协程之动态添加任务的方法
Feb 19 Python
python pandas获取csv指定行 列的操作方法
Jul 12 Python
python3 pillow模块实现简单验证码
Oct 31 Python
python的faker库用法
Nov 28 Python
Python列表解析操作实例总结
Feb 26 Python
Matplotlib使用Cursor实现UI定位的示例代码
Mar 12 Python
Python 使用office365邮箱的示例
Oct 29 Python
使用python3批量下载rbsp数据的示例代码
Dec 20 #Python
Python使用QQ邮箱发送邮件报错smtplib.SMTPAuthenticationError
Dec 20 #Python
Python字符串、列表、元组、字典、集合的补充实例详解
Dec 20 #Python
python获取网络图片方法及整理过程详解
Dec 20 #Python
python序列化与数据持久化实例详解
Dec 20 #Python
爬虫代理池Python3WebSpider源代码测试过程解析
Dec 20 #Python
python3的UnicodeDecodeError解决方法
Dec 20 #Python
You might like
php单一接口的实现方法
2015/06/20 PHP
yii2 modal弹窗之ActiveForm ajax表单异步验证
2016/06/13 PHP
PHP后台备份MySQL数据库的源码实例
2019/03/18 PHP
Swoole扩展的6种模式深入详解
2021/03/04 PHP
JQuery打造PHP的AJAX表单提交实例
2009/11/03 Javascript
13个绚丽的Jquery 界面设计网站推荐
2010/09/28 Javascript
jquery中的 $("#jb51")与document.getElementById("jb51") 的区别
2011/07/26 Javascript
javascript 手动给表增加数据的小例子
2013/07/10 Javascript
js出生日期 年月日级联菜单示例代码
2014/01/10 Javascript
18个非常棒的jQuery代码片段
2015/11/02 Javascript
基于Javascript实现返回顶部按钮
2016/02/29 Javascript
JavaScript绑定事件监听函数的通用方法
2016/05/14 Javascript
angularjs使用directive实现分页组件的示例
2017/02/07 Javascript
Nodejs进阶:express+session实现简易登录身份认证
2017/04/24 NodeJs
angularJS 发起$http.post和$http.get请求的实现方法
2017/05/18 Javascript
JS实现定时任务每隔N秒请求后台setInterval定时和ajax请求问题
2017/10/15 Javascript
Vue中的$set的使用实例代码
2018/10/08 Javascript
vue-cli3环境变量与分环境打包的方法示例
2019/02/18 Javascript
微信小程序云开发之使用云存储
2019/05/17 Javascript
vue实现路由不变的情况下,刷新页面操作示例
2020/02/02 Javascript
js+html+css实现手动轮播和自动轮播
2020/12/30 Javascript
如何在vue-cli中使用css-loader实现css module
2021/01/07 Vue.js
[02:31]《DAC最前线》之选手酒店现场花絮
2015/01/30 DOTA
[05:14]辉夜杯主赛事第二日 RECAP精彩回顾
2015/12/27 DOTA
[40:03]RNG vs VG 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/17 DOTA
实例讲解Python3中abs()函数
2019/02/19 Python
搞定这套Python爬虫面试题(面试会so easy)
2019/04/03 Python
Python实现堡垒机模式下远程命令执行操作示例
2019/05/09 Python
Python:Numpy 求平均向量的实例
2019/06/29 Python
Python中字符串List按照长度排序
2019/07/01 Python
详解python破解zip文件密码的方法
2020/01/13 Python
设计专业毕业生求职信
2014/06/25 职场文书
村主任个人对照检查材料
2014/10/01 职场文书
企业党的群众路线教育实践活动学习心得体会
2014/10/31 职场文书
趣味运动会标语口号
2015/12/26 职场文书
Nginx源码编译安装过程记录
2021/11/17 Servers