pandas 中对特征进行硬编码和onehot编码的实现
作者:很吵请安青争 发布时间:2021-03-26 22:37:49
标签:pandas,硬编码,onehot编码
首先介绍两种编码方式硬编码和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']
硬编码:
将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"]])
如果要对多个feature 进行onehot,这样即可df[[fea1,fea2..]]
对于onehot以后的数据,如果需要原有的数据合并,直接拿原来的join onehot的数据即可
res = df.join(data1)
join操作默认是根据index来进行join的,而get_dummies()不会改变index
来源:https://blog.csdn.net/dpengwang/article/details/84838688


猜你喜欢
- 环境: python 2.7 + win10工具:fiddler postman 安卓模拟器首先,打开fiddler,fiddler作为ht
- 第一:mysql服务的启动和停止net stop mysqlnet start mysql第二:登陆mysql –u用户名 [–h主机名或者
- 一、前言我们需要分析某句话,就必须检测该条语句中的词语。一般来说,一句话肯定包含多个词语,它们互相重叠,具体输出哪一个由自然语言的切分算法决
- 准备软件版本Django2.1.3Python3.7.1默认使用的是sqlite3DATABASES = { 'def
- <?php function getIPLoc_sina($queryIP){ $url =
- 前言Reids 在 Web 应用的开发中使用非常广泛,几乎所有的后端技术都会有涉及到 Redis 的使用。Redis 种除了常见的字符串 S
- 在 Internet 连接无处不在的今天,我们忽然有了另外一个需求,离线 Web。Gmail, Google Reader, Zoho 这些
- 如下所示:# -*- coding=utf-8 -*- import urllib2import socketimport timeurls
- element-ui中el-form自定义验证需求在输入项目名称后,调用后端接口isNameOnly,若已存在,则效果如下图:1.先设置校验
- 一、生产者消费者模型介绍1.1 为什么需要使用生产者消费者模型生产者是指生产数据的任务,消费者是指消费数据的任务。当生产者的生产能力远大于消
- Python现在是最热门的人工智能语言,各种工具的支持如Google的Tensorflow,都是首选支持Python的。但是,与R语言不同,
- 树状图树状图是显示对象、组或变量之间的层次关系的图表。树状图由在节点或簇处连接的分支组成,它们代表具有相似特征的观察组。分支的高度或节点之间
- worker pool简介worker pool其实就是线程池thread pool。对于go来说,直接使用的是goroutine而非线程,
- python 包含子目录中的模块方法比较简单,关键是能够在sys.path里面找到通向模块文件的路径。下面将具体介绍几种常用情况: (1)主
- 引言 本文通过python3、第三方python库Selenium和谷歌浏览器Chrome,完成WPS表单的自动填写。开发环境配置 py
- 你可能在使用MySQL过程中,各种意外导致数据库表的损坏,而且这些数据往往是最新的数据,通常不可能在备份数据中找到。本章将讲述如何检测MyS
- 前言一直想好好学习一下Python爬虫,之前断断续续的把Python基础学了一下,悲剧的是学的没有忘的快。只能再次拿出来滤了一遍,趁热打铁,
- 本文实例讲述了php的PDO事务处理机制。分享给大家供大家参考,具体如下:事务 (Transaction) 是操作数据库中很重要的一个功能,
- 一道笔试题思考而来的,通常情况下没人会在函数内部修改参数值。这里仅拿出来讨论,有三种方式可以修改。1,直接修改函数声明时的形参functio
- 目前用于Python的格式化程序(如autopep8和pep8ify)都用于删除代码中的lint错误。这有很明显的局限性。YAPF采用了不同