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编码的实现就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
Python Opencv使用ann神经网络识别手写数字功能
这篇文章主要介绍了opencv(python)使用ann神经网络识别手写数字,由于这里主要研究knn算法,为了图简单,直接使用Keras的mnist手写数字解析模块,本文通过实例代码给大家介绍的非常详细,需要的朋友可以参考下2022-07-07
python 内置库wsgiref的使用(WSGI基础入门)
WSGI(web服务器网关接口)主要规定了服务器端和应用程序之间的接口,即规定了请求的URL到后台处理函数之间的映射该如何实现。wsgiref是一个帮助开发者开发测试的Python内置库,程序员可以通过这个库了解WSGI的基本运行原理,但是不能把它用在生产环境上。2021-06-06
Python创建一个空的dataframe,并循环赋值的方法
今天小编就为大家分享一篇Python创建一个空的dataframe,并循环赋值的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧2018-11-11
Python + Tkinter连接本地MySQL数据库简单实现注册登录
这篇文章主要介绍了Python + Tkinter连接本地MySQL数据库简单实现注册登录。下面文章着情介绍,需要的小伙伴可以参考一下2022-01-01
pytorch如何自定义forward和backward函数
PyTorch自动求导功能强大,但在特定情况下需要用户自行定义backward函数,通过实例解释了保存变量、计算梯度、链式法则等核心概念,并展示了如何通过自定义函数集成到网络中以及如何正确返回梯度,此外,还讨论了多输出情况下的梯度传递2024-10-10
python selenium爬取斗鱼所有直播房间信息过程详解
这篇文章主要介绍了python selenium爬取斗鱼所有直播房间信息过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下2019-08-08


最新评论