pandas 中对特征进行硬编码和onehot编码的实现

 更新时间:2019年12月20日 15:03:30   作者:很吵请安青争  
今天小编就为大家分享一篇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编码的实现就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • python2.7使用plotly绘制本地散点图和折线图

    python2.7使用plotly绘制本地散点图和折线图

    这篇文章主要为大家详细介绍了python2.7使用plotly绘制本地散点图和折线图实例,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-04-04
  • 简单掌握Python的Collections模块中counter结构的用法

    简单掌握Python的Collections模块中counter结构的用法

    counter数据结构被用来提供技术功能,形式类似于Python中内置的字典结构,这里通过几个小例子来简单掌握Python的Collections模块中counter结构的用法:
    2016-07-07
  • 详解PyQt5 事件处理机制

    详解PyQt5 事件处理机制

    PyQt为事件处理提供了两种机制高级的信号与槽机制,以及低级的事件处理机制,这篇文章主要介绍了PyQt5 事件处理机制,需要的朋友可以参考下
    2022-11-11
  • 在pytorch中计算准确率,召回率和F1值的操作

    在pytorch中计算准确率,召回率和F1值的操作

    这篇文章主要介绍了在pytorch中计算准确率,召回率和F1值的操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-05-05
  • PyQt5 实现百度图片下载器GUI界面

    PyQt5 实现百度图片下载器GUI界面

    本文主要介绍了通过 Pyqt5 实现一个界面化的下载器,在通过网络请求实现各种类型的图片的下载。文中的示例代码讲解详细,感兴趣的小伙伴可以了解一下
    2021-12-12
  • python中json操作之json.loads、json.load、json.jumps及json.jump用法

    python中json操作之json.loads、json.load、json.jumps及json.jump用法

    最近在python里面用json读取json文件,可是老是不成功,特此记录一下,下面这篇文章主要给大家介绍了关于python中json操作之json.loads、json.load、json.jumps及json.jump用法的相关资料,需要的朋友可以参考下
    2022-08-08
  • Python通过socketserver处理多个链接

    Python通过socketserver处理多个链接

    这篇文章主要介绍了Python通过socketserver处理多个链接,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-03-03
  • python实现基于信息增益的决策树归纳

    python实现基于信息增益的决策树归纳

    这篇文章主要为大家详细介绍了Python实现基于信息增益的决策树归纳,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-12-12
  • Django Auth用户认证组件实现代码

    Django Auth用户认证组件实现代码

    这篇文章主要介绍了Django Auth用户认证组件实现代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-10-10
  • Python 运行 shell 获取输出结果的实例

    Python 运行 shell 获取输出结果的实例

    今天小编就为大家分享一篇Python 运行 shell 获取输出结果的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-01-01

最新评论