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
以上这篇pandas 中对特征进行硬编码和onehot编码的实现就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。
相关推荐
-
pandas使用get_dummies进行one-hot编码的方法
离散特征的编码分为两种情况: 1.离散特征的取值之间没有大小的意义,比如color:[red,blue],那么就使用one-hot编码 2.离散特征的取值有大小的意义,比如size:[X,XL,XXL],那么就使用数值的映射{X:1,XL:2,XXL:3} 使用pandas可以很方便的对离散型特征进行one-hot编码 import pandas as pd df = pd.DataFrame([ ['green', 'M', 10.1, 'class1'], ['red', 'L', 13.5
-
python对离散变量的one-hot编码方法
我们在进行建模时,变量中经常会有一些变量为离散型变量,例如性别.这些变量我们一般无法直接放到模型中去训练模型.因此在使用之前,我们往往会对此类变量进行处理.一般是对离散变量进行one-hot编码.下面具体介绍通过python对离散变量进行one-hot的方法. 注意:这里提供两种哑编码的实现方法,pandas和sklearn.它们最大的区别是,pandas默认只处理字符串类别变量,sklearn默认只处理数值型类别变量(需要先 LabelEncoder ) ① pd.get_dummies(pr
-
pandas 中对特征进行硬编码和onehot编码的实现
首先介绍两种编码方式硬编码和onehot编码,在模型训练所需要数据中,特征要么为连续,要么为离散特征,对于那些值为非数字的离散特征,我们要么对他们进行硬编码,要么进行onehot编码,转化为模型可以用于训练的特征 初始化一个DataFrame import pandas as pd df = pd.DataFrame([ ['green', 'M', 20, 'class1'], ['red', 'L', 21, 'class2'], ['blue', 'XL',30, 'class3']])
-
机器学习数据预处理之独热One-Hot编码及其代码详解
目录 1. 为什么使用 one-hot 编码? 问题: 目的: 瓶颈: 2. 什么是 one-hot 编码? 定义: 理解: 举例1: 举例2: 3. one-hot 编码优缺点? 优点: 缺点: 1. 为什么使用 one-hot 编码? 问题: 在机器学习算法中,我们经常会遇到分类特征,例如:人的性别有男女,祖国有中国,美国,法国等. 这些特征值并不是连续的,而是离散的,无序的. 目的: 如果要作为机器学习算法的输入,通常我们需要对其进行特征数字化.什么是特征数字化呢?例如: 性别特征:["男
-
在 Python 中进行 One-Hot 编码
目录 1.介绍 2.什么是One-Hot编码? 3.实现-Pandas 4.实现-Scikit-Learn 5.One-hot编码在机器学习领域的应用 1.介绍 在计算机科学中,数据可以用很多不同的方式表示,自然而然地,每一种方式在某些领域都有其优点和缺点. 由于计算机无法处理分类数据,因为这些类别对它们没有意义,如果我们希望计算机能够处理这些信息,就必须准备好这些信息. 此操作称为预处理. 预处理的很大一部分是编码 - 以计算机可以理解的方式表示每条数据(该
-
pandas中apply和transform方法的性能比较及区别介绍
1. apply与transform 首先讲一下apply() 与transform()的相同点与不同点 相同点: 都能针对dataframe完成特征的计算,并且常常与groupby()方法一起使用. 不同点: apply()里面可以跟自定义的函数,包括简单的求和函数以及复杂的特征间的差值函数等(注:apply不能直接使用agg()方法 / transform()中的python内置函数,例如sum.max.min.'count'等方法) transform() 里面不能跟自定义的特征交互函数,
-
linux中的软连接和硬连接详解
目录 1.文件和目录的基本存储 2.In命令介绍 (1)我们来看看ln命令的基本信息命令名称: (2)ln命令的基本格式 3.创建硬链接 (1)如何创建硬链接 (2)硬链接特征 (3)硬连接原理 4.创建软链接 (1)如何创建软链接 (2)软链接特征 (3)软连接原理 (4)说明 提示:先来说明一下在Linux系统中文件和目录的基本存储,这样更方便我们理解和学习Linux系统中的硬链接和软链接. 1.文件和目录的基本存储 之前说过分区,每个分区都可以理解为分成两部分,一小部分里边是存放文件的i节
-
Pandas中批量替换字符的六种方法总结
目录 一.前言 二.解决过程 方法一 方法二 方法三 方法四 方法五 方法六 三.总结 一.前言 前几天在Python最强王者群有个叫[dcpeng]的粉丝问了一个关于Pandas中的问题,这里拿出来给大家分享下,一起学习. 想问一下我有一列编码为1,2,3,4的数据,如何将1批量换为“开心”,2批量换为“悲伤”这种字符替换呢? 二.解决过程 思路挺简单,限定Pandas处理,想到的方法有很多,这里拿出来给大家分享,希望对大家的学习有帮助. 下面这个是生成源数据的代码: df = pd.Data
-
pandas中提取DataFrame某些列的一些方法
目录 前言 方法一:df[columns] 方法二:df.loc[]:用 label (行名或列名)做索引. 方法三:df.iloc[]: i 表示 integer,用 integer location(行或列的整数位置,从0开始)做索引. 补充:提取所有列名中包含“线索”.“浏览”字段的列 参考: 总结 前言 在处理表格型数据时,一行数据是一个 sample,列就是待提取的特征.怎么选取其中的一些列呢?本文分享一些方法. 使用如下的数据作为例子: import pandas as pd dat
-
Pandas中八个常用option设置的示例详解
目录 前言 1. 显示更多行 2. 显示更多列 3. 改变列宽 4. 设置float列的精度 5. 数字格式化显示 用逗号格式化大值数字 设置数字精度 百分号格式化 6. 更改绘图方法 7. 配置info()的输出 8. 打印出当前设置并重置所有选项 前言 通过pandas的使用,我们经常要交互式地展示表格(dataframe).分析表格.而表格的格式就显得尤为重要了,因为大部分时候如果我们直接展示表格,格式并不是很友好. 其实呢,这些痛点都可以通过pandas的option来解决.短短几行代码
-
浅谈pandas中DataFrame关于显示值省略的解决方法
python的pandas库是一个非常好的工具,里面的DataFrame更是常用且好用,最近是越用越觉得设计的漂亮,pandas的很多细节设计的都非常好,有待使用过程中发掘. 好了,发完感慨,说一下最近DataFrame遇到的一个细节: 在使用DataFrame中有时候会遇到表格中的value显示不完全,像下面这样: In: import pandas as pd longString = u'''真正的科学家应当是个幻想家:谁不是幻想家,谁就只能把自己称为实践家.人生的磨难是很多的, 所以我们
随机推荐
- 简单的Python的curses库使用教程
- 详解tomcat热部署和热加载的方法
- php实现用户注册密码的crypt加密
- 详解Python爬虫的基本写法
- C语言求解最长公共子字符串问题及相关的算法分析
- c语言打开文件函数使用方法
- c++双向链表操作示例(创建双向链、双向链表中查找数据、插入数据等)
- 浅谈MyISAM 和 InnoDB 的区别与优化
- 如何利用php array_multisort函数 对数据库结果进行复杂排序
- 基于Vue生产环境部署详解
- JS左右无缝滚动(一般方法+面向对象方法)
- asp+Access通用的自动替换数据库中的字符串
- Hibernate管理Session和批量操作分析
- JQUERY 实现窗口滚动搜索框停靠效果(类似滚动停靠)
- JavaScript onkeydown事件入门实例(键盘某个按键被按下)
- Velocity基本语法介绍
- C# linq查询之动态OrderBy用法实例
- php 在线打包_支持子目录
- 浅谈ASP中的类
- app 请求服务器json数据实例代码