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中struct模块对字节流/二进制流的操作教程
Jan 21 Python
Python中音频处理库pydub的使用教程
Jun 07 Python
python使用itchat实现手机控制电脑
Feb 22 Python
python爬虫之urllib库常用方法用法总结大全
Nov 14 Python
Python判断是否json是否包含一个key的方法
Dec 31 Python
详解Python中打乱列表顺序random.shuffle()的使用方法
Nov 11 Python
python 求10个数的平均数实例
Dec 16 Python
python3中关于excel追加写入格式被覆盖问题(实例代码)
Jan 10 Python
Python3.x+pyqtgraph实现数据可视化教程
Mar 14 Python
python中使用input()函数获取用户输入值方式
May 03 Python
python3代码输出嵌套式对象实例详解
Dec 03 Python
Pytorch自定义Dataset和DataLoader去除不存在和空数据的操作
Mar 03 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
Laravel中为什么不使用blpop取队列详析
2018/08/01 PHP
php+Ajax无刷新验证用户名操作实例详解
2019/03/04 PHP
php经典趣味算法实例代码
2020/01/21 PHP
让div层随鼠标移动的实现代码 ie ff
2009/12/18 Javascript
JS传参及动态修改页面布局
2017/04/13 Javascript
Vue动态实现评分效果
2017/05/24 Javascript
原生js实现密码输入框值的显示隐藏
2017/07/17 Javascript
关于JS与jQuery中的文档加载问题
2017/08/22 jQuery
bootstrap table支持高度百分比的实例代码
2018/02/28 Javascript
深入理解Node module模块
2018/03/26 Javascript
Webpack5正式发布,有哪些新特性
2020/10/12 Javascript
es5 类与es6中class的区别小结
2020/11/09 Javascript
vue element el-transfer增加拖拽功能
2021/01/15 Vue.js
[01:14:34]DOTA2上海特级锦标赛C组资格赛#2 LGD VS Newbee第一局
2016/02/28 DOTA
python 生成不重复的随机数的代码
2011/05/15 Python
编写Python脚本使得web页面上的代码高亮显示
2015/04/24 Python
Python使用logging结合decorator模式实现优化日志输出的方法
2016/04/16 Python
python 查找字符串是否存在实例详解
2017/01/20 Python
Python中如何优雅的合并两个字典(dict)方法示例
2017/08/09 Python
Python爬取十篇新闻统计TF-IDF
2018/01/03 Python
python退出命令是什么?详解python退出方法
2018/12/10 Python
python切片的步进、添加、连接简单操作示例
2019/07/11 Python
如何基于python测量代码运行时间
2019/12/25 Python
tensorflow 实现打印pb模型的所有节点
2020/01/23 Python
TensorFlow MNIST手写数据集的实现方法
2020/02/05 Python
解决pymysql cursor.fetchall() 获取不到数据的问题
2020/05/15 Python
通过代码实例解析Pytest运行流程
2020/08/20 Python
中国海淘族值得信赖的海淘返利网站:55海淘
2017/01/16 全球购物
丽笙酒店官方网站:Radisson Hotels
2019/05/07 全球购物
个人实用简单的自我评价
2013/10/19 职场文书
在求职信中如何凸显个人优势
2013/10/30 职场文书
体育教师个人的自我评价
2014/02/16 职场文书
投资入股协议书
2016/03/22 职场文书
确保减税降费落地生根,用实实在在措施
2019/07/19 职场文书
nginx里的rewrite跳转的实现
2021/03/31 Servers
Android存储中最基本的文件存储方式
2022/04/30 Java/Android