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实现栈的方法
May 26 Python
python获取各操作系统硬件信息的方法
Jun 03 Python
Python中字符串的处理技巧分享
Sep 17 Python
requests和lxml实现爬虫的方法
Jun 11 Python
Python原始字符串与Unicode字符串操作符用法实例分析
Jul 22 Python
Python编程实现使用线性回归预测数据
Dec 07 Python
python实现对任意大小图片均匀切割的示例
Dec 05 Python
浅析python参数的知识点
Dec 10 Python
Python3 pip3 list 出现 DEPRECATION 警告的解决方法
Feb 16 Python
pyqt5 实现在别的窗口弹出进度条
Jun 18 Python
OpenCV 模板匹配
Jul 10 Python
Python绘图实现台风路径可视化代码实例
Oct 23 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
SONY ICF-SW55的电路分析
2021/03/02 无线电
IP攻击升级,程序改进以对付新的攻击
2010/11/23 PHP
laravel admin实现分类树/模型树的示例代码
2020/06/10 PHP
在js中使用"with"语句中跨frame的变量引用问题
2007/03/08 Javascript
js Html结构转字符串形式显示代码
2011/11/15 Javascript
js获取url中指定参数值的示例代码
2013/12/14 Javascript
Javascript中的Array数组对象详谈
2014/03/03 Javascript
jQuery多级手风琴菜单实例讲解
2015/10/22 Javascript
半个小时学json(json传递示例)
2016/12/25 Javascript
AngularJS使用ng-app自动加载bootstrap框架问题分析
2017/01/04 Javascript
Javascript前端经典的面试题及答案
2017/03/14 Javascript
详解使用Vue Router导航钩子与Vuex来实现后退状态保存
2017/09/11 Javascript
Js利用prototype自定义数组方法示例
2017/10/20 Javascript
Vue-cli-webpack搭建斗鱼直播步骤详解
2017/11/17 Javascript
React中如何引入Angular组件详解
2018/08/09 Javascript
vue实现自定义日期组件功能的实例代码
2018/11/06 Javascript
webpack4之如何编写loader的方法步骤
2019/06/06 Javascript
JavaScript动态添加数据到表单并提交的几种方式
2019/06/26 Javascript
Vue formData实现图片上传
2019/08/20 Javascript
跟老齐学Python之编写类之一创建实例
2014/10/11 Python
Python求两个圆的交点坐标或三个圆的交点坐标方法
2018/11/07 Python
pyqt5实现绘制ui,列表窗口,滚动窗口显示图片的方法
2019/06/20 Python
python读取文件指定行内容实例讲解
2020/03/02 Python
css3+伪元素实现鼠标移入时下划线向两边展开的效果
2017/04/25 HTML / CSS
如何获取某个日期是当月的最后一天
2013/12/05 面试题
以下的初始化有什么区别
2013/12/16 面试题
积极分子思想汇报
2014/01/04 职场文书
生日主持词
2014/03/20 职场文书
三八妇女节活动总结
2014/05/04 职场文书
新颖的化妆品活动方案
2014/08/21 职场文书
防灾减灾标语
2014/10/07 职场文书
交通事故调解协议书
2015/05/20 职场文书
Golang: 内建容器的用法
2021/05/05 Golang
解读Vue组件注册方式
2021/05/15 Vue.js
使用redis实现延迟通知功能(Redis过期键通知)
2021/09/04 Redis
优化Mysql查询的示例
2022/04/26 MySQL