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 相关文章推荐
使用django-crontab实现定时任务的示例
Feb 26 Python
对python3新增的byte类型详解
Dec 04 Python
Python pandas DataFrame操作的实现代码
Jun 21 Python
Python列表list常用内建函数实例小结
Oct 22 Python
Python元组 tuple的概念与基本操作详解【定义、创建、访问、计数、推导式等】
Oct 30 Python
Python高级特性之闭包与装饰器实例详解
Nov 19 Python
如何基于python测量代码运行时间
Dec 25 Python
关于pytorch处理类别不平衡的问题
Dec 31 Python
Pytorch实现LSTM和GRU示例
Jan 14 Python
Python爬虫+tkinter界面实现历史天气查询的思路详解
Feb 22 Python
python 实现网易邮箱邮件阅读和删除的辅助小脚本
Mar 01 Python
Django中celery的使用项目实例
Jul 07 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输出1000以内质数(素数)示例
2014/02/16 PHP
PHP中使用array函数新建一个数组
2015/11/19 PHP
Zend Framework教程之响应对象的封装Zend_Controller_Response实例详解
2016/03/07 PHP
laravel如何开启跨域功能示例详解
2017/08/31 PHP
srcElement表格样式
2006/09/03 Javascript
javascript基础知识大全 便于大家学习,也便于我自己查看
2012/08/17 Javascript
javascript的渐进增强与平稳退化浅谈
2013/11/12 Javascript
用Jquery选择器计算table中的某一列某一行的合计
2014/08/13 Javascript
Windows8下搭建Node.js开发环境教程
2014/09/03 Javascript
Bootstrap开发实战之响应式轮播图
2016/06/02 Javascript
JavaScript接口的实现三种方式(推荐)
2016/06/14 Javascript
功能强大的Bootstrap组件(结合js)
2016/08/03 Javascript
微信小程序 图片绝对定位(背景图片)
2017/04/05 Javascript
jQuery层级选择器_动力节点节点Java学院整理
2017/07/04 jQuery
浅谈SpringMVC中post checkbox 多选框value的值(隐藏域方式)
2018/01/08 Javascript
详解react-native WebView 返回处理(非回调方法可解决)
2018/02/27 Javascript
vue.js中$set与数组更新方法
2018/03/08 Javascript
手把手教你使用TypeScript开发Node.js应用
2019/05/06 Javascript
对TypeScript库进行单元测试的方法
2019/07/18 Javascript
vue 组件简介
2020/07/31 Javascript
python实现进程间通信简单实例
2014/07/23 Python
进一步探究Python中的正则表达式
2015/04/28 Python
python复制文件到指定目录的实例
2018/04/27 Python
Python使用pickle模块储存对象操作示例
2018/08/15 Python
Python如何向SQLServer存储二进制图片
2020/06/08 Python
HTML5实现经典坦克大战坦克乱走还能发出一个子弹
2013/09/02 HTML / CSS
苏格兰销售女装、男装和童装的连锁店:M&Co
2018/03/16 全球购物
西班牙宠物用品和食品网上商店:Tiendanimal
2019/06/06 全球购物
英国Lookfantastic中文网站:护肤品美妆美发购物(英国直邮)
2020/04/27 全球购物
四年级科学教学反思
2014/02/10 职场文书
金融管理毕业生求职信
2014/03/03 职场文书
2015年个人实习工作总结
2015/05/28 职场文书
秋菊打官司观后感
2015/06/03 职场文书
欧也妮葛朗台读书笔记
2015/06/30 职场文书
大学体育课感想
2015/08/10 职场文书
win10下go mod配置方式
2021/04/25 Golang