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爬虫框架Scrapy安装使用步骤
Apr 01 Python
Python数据分析之如何利用pandas查询数据示例代码
Sep 01 Python
使用python实现knn算法
Dec 20 Python
Python numpy 提取矩阵的某一行或某一列的实例
Apr 03 Python
python 读取txt,json和hdf5文件的实例
Jun 05 Python
Flask模拟实现CSRF攻击的方法
Jul 24 Python
对python 读取线的shp文件实例详解
Dec 22 Python
python实现读取excel文件中所有sheet操作示例
Aug 09 Python
python集成开发环境配置(pycharm)
Feb 14 Python
Python3.7 读取音频根据文件名生成脚本的代码
Apr 07 Python
使用IPython或Spyder将省略号表示的内容完整输出
Apr 20 Python
python-jwt用户认证食用教学的实现方法
Jan 19 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中SESSION使用中的一点经验总结
2012/03/30 PHP
用PHP实现浏览器点击下载TXT文档的方法详解
2013/06/02 PHP
PHP模板引擎Smarty内建函数详解
2016/04/11 PHP
PHP线程的内存回收问题
2016/07/08 PHP
详解PHP用substr函数截取字符串中的某部分
2016/12/03 PHP
PHP实现Redis单据锁以及防止并发重复写入
2018/04/10 PHP
两种WEB下的模态对话框 (asp.net或js的分别实现)
2009/12/02 Javascript
如何用js控制frame的隐藏或显示的解决办法
2013/03/20 Javascript
在Javascript中 声明时用"var"与不用"var"的区别
2013/04/15 Javascript
ie8模式下click无反应点击option无反应的解决方法
2014/10/11 Javascript
jQuery实现dialog设置focus焦点的方法
2015/06/10 Javascript
jQuery网页版打砖块小游戏源码分享
2015/08/20 Javascript
jQuery实现图片上传和裁剪插件Croppie
2015/11/29 Javascript
jQuery基于扩展实现的倒计时效果
2016/05/14 Javascript
移动端H5开发 Turn.js实现很棒的翻书效果
2016/06/20 Javascript
简洁实用的BootStrap jQuery手风琴插件
2016/08/31 Javascript
JS匿名函数实例分析
2016/11/26 Javascript
jQuery插件HighCharts绘制2D饼图效果示例【附demo源码下载】
2017/03/21 jQuery
JS实现按钮控制计时开始和停止功能
2017/07/27 Javascript
vue实现简单loading进度条
2018/06/06 Javascript
微信小程序实现弹出菜单功能
2018/06/12 Javascript
浅谈关于iview表单验证的问题
2018/09/29 Javascript
详解小程序循环require之坑
2019/03/08 Javascript
jquery 回调操作实例分析【回调成功与回调失败的情况】
2019/09/27 jQuery
基于Vue实现微前端的示例代码
2020/04/24 Javascript
vue实现公告栏文字上下滚动效果的示例代码
2020/06/16 Javascript
Python 递归函数详解及实例
2016/12/27 Python
Python如何import文件夹下的文件(实现方法)
2017/01/24 Python
Python中pygal绘制雷达图代码分享
2017/12/07 Python
用tensorflow搭建CNN的方法
2018/03/05 Python
selenium+python 对输入框的输入处理方法
2018/10/11 Python
Python3.5以上版本lxml导入etree报错的解决方案
2019/06/26 Python
html5 css3实例教程 一款html5和css3实现的小机器人走路动画
2014/10/20 HTML / CSS
百思买美国官网:Best Buy
2016/07/28 全球购物
2014年标准化工作总结
2014/12/17 职场文书
处世之道:关于真诚相待的名言推荐
2019/12/02 职场文书