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 client使用http post 到server端的代码
Feb 10 Python
python控制台英汉汉英电子词典
Apr 23 Python
Python基于回溯法子集树模板解决数字组合问题实例
Sep 02 Python
pandas 选择某几列的方法
Jul 03 Python
python2 与 python3 实现共存的方法
Jul 12 Python
Python编程深度学习计算库之numpy
Dec 28 Python
Python实现微信机器人的方法
Sep 06 Python
python getpass模块用法及实例详解
Oct 07 Python
python脚本监控logstash进程并邮件告警实例
Apr 28 Python
Tensorflow加载Vgg预训练模型操作
May 26 Python
Python爬虫实现百度翻译功能过程详解
May 29 Python
Python3爬虫中Ajax的用法
Jul 10 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
PHPMailer安装方法及简单实例
2008/11/25 PHP
PHP使用反射机制实现查找类和方法的所在位置
2016/04/22 PHP
php版阿里大于(阿里大鱼)短信发送实例详解
2016/11/30 PHP
iframe自适应宽度、高度 ie6 7 8,firefox 3.86下测试通过
2010/07/29 Javascript
jQuery 名称冲突的解决方法
2011/04/08 Javascript
Jquery异步请求数据实例代码
2011/12/28 Javascript
JQuery验证工具类搜集整理
2013/01/16 Javascript
js post提交调用方法
2014/02/12 Javascript
JQ技术实现注册页面带有校验密码强度
2015/07/27 Javascript
Jquery 分页插件之Jquery Pagination
2015/08/25 Javascript
基于javascript实现图片预加载
2016/01/05 Javascript
Jquery和Js获得元素标签名称的方法总结
2016/10/08 Javascript
JS克隆,属性,数组,对象,函数实例分析
2016/11/26 Javascript
canvas实现动态小球重叠效果
2017/02/06 Javascript
js实现点击切换checkbox背景图片的简单实例
2017/05/08 Javascript
Vue.extend构造器的详解
2017/07/17 Javascript
Vue学习笔记进阶篇之函数化组件解析
2017/07/21 Javascript
使用 Vue 绑定单个或多个 Class 名的实例代码
2018/01/08 Javascript
Vue表单及表单绑定方法
2018/09/04 Javascript
vue中keep-alive,include的缓存问题
2019/11/26 Javascript
vue通过v-html指令渲染的富文本无法修改样式的解决方案
2020/05/20 Javascript
vue使用better-scroll实现滑动以及左右联动
2020/06/30 Javascript
SpringBoot+Vue开发之Login校验规则、实现登录和重置事件
2020/10/19 Javascript
python写的一个文本编辑器
2014/01/23 Python
Python开发如何在ubuntu 15.10 上配置vim
2016/01/25 Python
tf.truncated_normal与tf.random_normal的详细用法
2018/03/05 Python
python将四元数变换为旋转矩阵的实例
2019/12/04 Python
canvas探照灯效果的示例代码
2018/11/30 HTML / CSS
意大利制造的男鞋和女鞋:SCAROSSO
2018/03/07 全球购物
门卫人员岗位职责
2013/12/24 职场文书
交通事故检查书范文
2014/01/30 职场文书
测绘工程专业求职信
2014/07/15 职场文书
公积金接收函格式
2015/01/30 职场文书
校长师德表现自我评价
2015/03/05 职场文书
2016年大学生暑期社会实践活动总结
2016/04/06 职场文书
Python NumPy灰度图像的压缩原理讲解
2021/08/04 Python