pandas.get_dummies()

参考博客1
参考博客2

one hot 编码

形式和定义

  1. one hot 编码,其为一位有效编码,主要是采用N位状态寄存器来对N个状态进行编码,每个状态都有独立的寄存器位,并且在任意时候只有一位有效。
  2. 这些特征值并不是连续的,而是离散的,无序的。
    通常我们需要对其进行特征数字化。

特征数字化

  1. 性别特征:[“男”,“女”]
    按照N位状态寄存器来对N个状态进行编码的原理,咱们处理后应该是这样的(这里只有两个特征,所以N=2):
    男 → 10 女 → 01
  2. 国家特征:[“中国”,"美国,“法国”](N=3):
    中国 → 100 美国 → 010 法国 → 001
    当一个样本为[“男”,“中国”]的时候,完整的特征数字化的结果为:
    [1,0,1,0,0],其实就是对应,男(01),中国(100)合起来的编码

优点

  1. 它是一种数据预处理方式
  2. 要的目的是描述无序的数据,避免人为地引入序数,可以理解为大小关系,例如red,green,blue之间就不能比较大小。
  3. 解决了分类器不好处理属性数据的问题,在一定程度上也起到了扩充特征的作用。

函数使用

函数解析

pandas.get_dummies(
data, # 传入的data为需要进行One-Hot 编码的数据
prefix=None, # 经过 get_dummies() 编码后新生成的列,列名为 “原列名_类别,可以设置prefix,它是用于附加DataFrame列名的字符串
prefix_sep='_', #分隔符,可以为'/'或者其他,比如:Animals/dog
dummy_na=False, 
columns=None, 
sparse=False,
drop_first=False, 
dtype=None)

函数实操

import pandas as pd
df = pd.DataFrame([
            ['green' , 'A'],
            ['red'   , 'B'],
            ['blue'  , 'A']])
df.columns = ['color',  'class'] 
'''
    color 	class
0  green     A
1    red     B
2   blue     A
'''
pd.get_dummies(df)
'''
   color_blue  color_green  color_red  class_A  class_B
0           0            1          0        1        0
1           0            0          1        0        1
2           1            0          0        1        0
'''
df = pd.get_dummies(df, prefix_sep='/')
'''
   color/blue  color/green  color/red  class/A  class/B
0           0            1          0        1        0
1           0            0          1        0        1
2           1            0          0        1        0
'''
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值