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抓取百度查询结果的方法
Jul 08 Python
Python利用flask sqlalchemy实现分页效果
Aug 02 Python
Python中is和==的区别详解
Nov 15 Python
Mac 使用python3的matplot画图不显示的解决
Nov 23 Python
Python 解决相对路径问题:"No such file or directory"
Jun 05 Python
python实现简易版学生成绩管理系统
Jun 22 Python
基于python实现MQTT发布订阅过程原理解析
Jul 27 Python
Django restful framework生成API文档过程详解
Nov 12 Python
提取视频中的音频 Python只需要三行代码!
May 10 Python
教你怎么用Python生成九宫格照片
May 20 Python
教你使用TensorFlow2识别验证码
Jun 11 Python
手把手教你实现PyTorch的MNIST数据集
Jun 28 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中随机显示图片的函数代码
2011/06/23 PHP
解析Linux下Varnish缓存的配置优化
2013/06/20 PHP
php 伪造ip以及url来路信息方法汇总
2014/11/25 PHP
10款PHP开源商城系统汇总介绍
2015/07/23 PHP
php实现登陆模块功能示例
2016/10/20 PHP
OAuth认证协议中的HMACSHA1加密算法(实例)
2017/10/25 PHP
JS 容错处理代码, 屏蔽错误信息
2021/03/09 Javascript
JavaScript中的私有成员
2006/09/18 Javascript
jQuery编写widget的一些技巧分享
2010/10/28 Javascript
在Python中使用glob模块查找文件路径的方法
2015/06/17 Javascript
jQuery实现表单步骤流程导航代码分享
2015/08/28 Javascript
Markdown+Bootstrap图片自适应属性详解
2016/05/21 Javascript
jQuery中Ajax全局事件引用方式及各个事件(全局/局部)执行顺序
2016/06/02 Javascript
基于jQuery实现歌词滚动版音乐播放器的代码
2016/09/17 Javascript
使用JavaScript生成罗马字符的实例代码
2018/06/08 Javascript
JavaScript中的this/call/apply/bind的使用及区别
2020/03/06 Javascript
js实现手表表盘时钟与圆周运动
2020/09/18 Javascript
[56:45]DOTA2上海特级锦标赛D组小组赛#1 EG VS COL第一局
2016/02/28 DOTA
详解Python中expandtabs()方法的使用
2015/05/18 Python
Python中pygame安装方法图文详解
2015/11/11 Python
Python编程之event对象的用法实例分析
2017/03/23 Python
python3获取当前文件的上一级目录实例
2018/04/26 Python
十个Python练手的实战项目,学会这些Python就基本没问题了(推荐)
2019/04/26 Python
Python多进程方式抓取基金网站内容的方法分析
2019/06/03 Python
Python基础学习之基本数据结构详解【数字、字符串、列表、元组、集合、字典】
2019/06/18 Python
简单了解为什么python函数后有多个括号
2019/12/19 Python
浅谈pytorch池化maxpool2D注意事项
2020/02/18 Python
Python实现打包成库供别的模块调用
2020/07/13 Python
美国奢侈品在线团购网站:Gilt City
2017/11/16 全球购物
几道Java和数据库的面试题
2013/05/30 面试题
机械系大学毕业生推荐信
2013/11/27 职场文书
2014年学校工作总结
2014/11/20 职场文书
2014年小学少先队工作总结
2014/12/18 职场文书
2015年党建工作总结
2015/03/30 职场文书
2015年小学师德师风建设工作总结
2015/10/23 职场文书
Tomcat项目启动失败的原因和解决办法
2022/04/20 Servers