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查询Mysql时返回字典结构的代码
Jun 18 Python
Python中input和raw_input的一点区别
Oct 21 Python
Python运行报错UnicodeDecodeError的解决方法
Jun 07 Python
Python结巴中文分词工具使用过程中遇到的问题及解决方法
Apr 15 Python
详细分析python3的reduce函数
Dec 05 Python
Python2中文处理纪要的实现方法
Mar 10 Python
python 从文件夹抽取图片另存的方法
Dec 04 Python
Python设计模式之建造者模式实例详解
Jan 17 Python
Django+boostrap 美化admin后台的操作
Mar 11 Python
Python如何避免文件同名产生覆盖
Jun 09 Python
python如何实时获取tcpdump输出
Sep 16 Python
PIP和conda 更换国内安装源的方法步骤
Sep 21 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获取字符串的编码格式的方法(函数)
2013/06/21 PHP
php绘制一个扇形的方法
2015/01/24 PHP
php获取、检查类名、函数名、方法名的函数方法
2015/06/25 PHP
WordPress中缩略图的使用以及相关技巧
2015/11/24 PHP
php gd等比例缩放压缩图片函数
2016/06/12 PHP
php基于自定义函数记录log日志方法
2017/07/21 PHP
thinkphp5框架API token身份验证功能示例
2019/05/21 PHP
PHP配合fiddler抓包抓取微信指数小程序数据的实现方法分析
2020/01/02 PHP
一个不错的应用,用于提交获取文章内容,不推荐用
2007/03/03 Javascript
javascript  Error 对象 错误处理
2008/05/18 Javascript
jquery 追加tr和删除tr示例代码
2013/09/12 Javascript
JavaScript实现维吉尼亚(Vigenere)密码算法实例
2013/11/22 Javascript
JS动态添加选项案例分析
2016/10/17 Javascript
jQuery UI插件实现百度提词器效果
2016/11/21 Javascript
jQuery删除当前节点元素
2016/12/07 Javascript
Vue2.0基于vue-cli+webpack Vuex的用法(实例讲解)
2017/09/15 Javascript
JavaScript引用类型Array实例分析
2018/07/24 Javascript
基于javascript实现贪吃蛇经典小游戏
2020/04/10 Javascript
Vue父组件监听子组件生命周期
2020/09/03 Javascript
OpenLayers3加载常用控件使用方法详解
2020/09/25 Javascript
详解JavaScript 中的批处理和缓存
2020/11/19 Javascript
[49:28]VP vs Optic 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
LRUCache的实现原理及利用python实现的方法
2017/11/21 Python
Python上下文管理器类和上下文管理器装饰器contextmanager用法实例分析
2019/11/07 Python
浅析python redis的连接及相关操作
2019/11/07 Python
Python实现序列化及csv文件读取
2020/01/19 Python
解析python 类方法、对象方法、静态方法
2020/08/15 Python
详解三种方式实现平滑滚动页面到顶部的功能
2019/04/23 HTML / CSS
Html5定位终极解决方案
2020/02/05 HTML / CSS
Spartoo荷兰:鞋子、包包和服装
2018/07/12 全球购物
一月红领巾广播稿
2014/02/11 职场文书
领导批评与自我批评范文
2014/10/16 职场文书
2015年保险公司个人工作总结
2015/05/22 职场文书
2015年秋季开学典礼校长致辞
2015/07/16 职场文书
幼儿园大班教学反思
2016/03/02 职场文书
mysql中int(3)和int(10)的数值范围是否相同
2021/10/16 MySQL