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 变量类型及命名规则介绍
Jun 08 Python
pyqt4教程之widget使用示例分享
Mar 07 Python
Python中实现三目运算的方法
Jun 21 Python
Python队列的定义与使用方法示例
Jun 24 Python
python画图——实现在图上标注上具体数值的方法
Jul 08 Python
Django中的用户身份验证示例详解
Aug 07 Python
Numpy对数组的操作:创建、变形(升降维等)、计算、取值、复制、分割、合并
Aug 28 Python
python实现的config文件读写功能示例
Sep 24 Python
jupyter notebook 使用过程中python莫名崩溃的原因及解决方式
Apr 10 Python
Python如何操作docker redis过程解析
Aug 10 Python
python logging模块的使用
Sep 07 Python
python3爬虫中引用Queue的实例讲解
Nov 24 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接口中interface存在的意义
2013/06/27 PHP
PHP+mysql实现的三级联动菜单功能示例
2019/02/15 PHP
PHP 模拟登陆功能实例详解
2019/09/10 PHP
PHP延迟静态绑定使用方法实例解析
2020/09/05 PHP
js 获取服务器控件值的代码
2010/03/05 Javascript
javascript中的prototype属性实例分析说明
2010/08/09 Javascript
从零开始学习jQuery (八) 插播:jQuery实施方案
2011/02/23 Javascript
JavaScript 布尔操作符解析  && || !
2012/08/10 Javascript
jquery交替变换颜色的三种方法 实例代码
2013/11/19 Javascript
原生js结合html5制作简易的双色子游戏
2015/03/30 Javascript
CSS+JS实现点击文字弹出定时自动关闭DIV层菜单的方法
2015/05/12 Javascript
ion content 滚动到底部会遮住一部分视图的快速解决方法
2016/09/06 Javascript
js放到head中失效的原因与解决方法
2017/03/07 Javascript
jquery实现全选、全不选以及单选功能
2017/03/23 jQuery
Vue实现按钮旋转和移动位置的实例代码
2018/08/09 Javascript
详解微信小程序开发用户授权登陆
2019/04/24 Javascript
在vue中使用Echarts利用watch做动态数据渲染操作
2020/07/20 Javascript
在Vue 中实现循环渲染多个相同echarts图表
2020/07/20 Javascript
Node.js 深度调试方法解析
2020/07/28 Javascript
[45:46]2014 DOTA2国际邀请赛中国区预选赛5.21 HGT VS DT
2014/05/23 DOTA
[57:50]DOTA2上海特级锦标赛主赛事日 - 4 胜者组决赛Secret VS Liquid第二局
2016/03/05 DOTA
python中pandas.DataFrame对行与列求和及添加新行与列示例
2017/03/12 Python
对python中raw_input()和input()的用法详解
2018/04/22 Python
在python中利用最小二乘拟合二次抛物线函数的方法
2018/12/29 Python
python实现在遍历列表时,直接对dict元素增加字段的方法
2019/01/15 Python
Python多叉树的构造及取出节点数据(treelib)的方法
2019/08/09 Python
使用phonegap获取位置信息的实现方法
2017/03/31 HTML / CSS
俄罗斯香水和化妆品购物网站:Л’Этуаль
2018/05/10 全球购物
Napapijri西班牙在线商店:夹克、外套、运动衫等
2020/11/05 全球购物
Currentbody德国站:健康与美容技术专家
2020/04/05 全球购物
优秀求职自荐信怎样写
2013/12/18 职场文书
初二生物教学反思
2014/02/03 职场文书
团日活动总结范文
2014/04/25 职场文书
师德师风个人自我剖析材料
2014/09/27 职场文书
个人职业及收入证明
2014/10/13 职场文书
乡镇计划生育工作汇报
2014/10/28 职场文书