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 15 Python
Python使用wxPython实现计算器
Jan 30 Python
python 实时得到cpu和内存的使用情况方法
Jun 11 Python
python+influxdb+shell编写区域网络状况表
Jul 27 Python
python绘制多个曲线的折线图
Mar 23 Python
pycharm在调试python时执行其他语句的方法
Nov 29 Python
在Pandas中DataFrame数据合并,连接(concat,merge,join)的实例
Jan 29 Python
python TF-IDF算法实现文本关键词提取
May 29 Python
Python批量生成幻影坦克图片实例代码
Jun 04 Python
Python集合操作方法详解
Feb 09 Python
python UIAutomator2使用超详细教程
Feb 19 Python
python中取整数的几种方法
Nov 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中路径问题的解决方案
2006/10/09 PHP
PHP常用开发函数解析之数组篇[未完结]
2012/07/30 PHP
PHPThumb图片处理实例
2014/05/03 PHP
PHP设计模式之原型模式定义与用法详解
2018/04/03 PHP
jQuery LigerUI 使用教程入门篇
2012/01/18 Javascript
侧栏跟随滚动的简单实现代码
2013/03/18 Javascript
jQuery aminate方法定位到页面具体位置
2013/12/26 Javascript
JS中完美兼容各大浏览器的scrolltop方法
2015/04/17 Javascript
学习Bootstrap滚动监听 附调用方法
2016/07/02 Javascript
Bootstrap整体框架之CSS12栅格系统
2016/12/15 Javascript
JS小数转换为整数的方法分析
2017/01/07 Javascript
js实现多行文本框统计剩余字数功能
2017/03/28 Javascript
用Cordova打包Vue项目的方法步骤
2019/02/02 Javascript
详解Vue+ElementUI从零开始搭建自己的网站(一、环境搭建)
2019/04/30 Javascript
Vue+Express实现登录状态权限验证的示例代码
2019/05/05 Javascript
解决微信小程序中的滚动穿透问题
2019/09/16 Javascript
vue 动态组件用法示例小结
2020/03/06 Javascript
[03:15]DOTA2-DPC中国联赛1月22日Recap集锦
2021/03/11 DOTA
Python的包管理器pip更换软件源的方法详解
2016/06/20 Python
Python中的with语句与上下文管理器学习总结
2016/06/28 Python
Python实现1-9数组形成的结果为100的所有运算式的示例
2017/11/03 Python
Tensorflow 训练自己的数据集将数据直接导入到内存
2018/06/19 Python
详解python里的命名规范
2018/07/16 Python
python正则表达式之对号入座篇
2018/07/24 Python
python的time模块和datetime模块实例解析
2019/11/29 Python
Django实现celery定时任务过程解析
2020/04/21 Python
CSS3 Notes: -webkit-box-reflect实现倒影的实例
2016/12/08 HTML / CSS
有机童装:Toby Tiger
2018/05/23 全球购物
小学生自我评价范例
2013/09/24 职场文书
大学自我鉴定
2013/12/20 职场文书
国际商务专业职业生涯规划书范文
2014/01/17 职场文书
毕业生自荐信如何写
2014/03/24 职场文书
三关爱志愿服务活动方案
2014/08/17 职场文书
在CSS中映射鼠标位置并实现通过鼠标移动控制页面元素效果(实例代码)
2021/04/22 HTML / CSS
教你怎么用Python生成九宫格照片
2021/05/20 Python
Python 操作pdf pdfplumber读取PDF写入Exce
2022/08/14 Python