实操笔记01-特征提取之pd.get_dummies()

get_dummies 是利用pandas实现one hot encode的方式。详细参数请查看官方文档
使用:

pandas.get_dummies(data, prefix=None, prefix_sep=’_’, dummy_na=False, columns=None, sparse=False, drop_first=False)[source]

参数说明:

  • data : array-like, Series, or DataFrame 输入的数据

  • prefix : string, list of strings, or dict of strings, default None。get_dummies转换后,列名的前缀

  • columns : list-like, default None。指定需要实现类别转换的列名

  • dummy_na : bool, default False,增加一列表示空缺值,如果False就忽略空缺值

  • drop_first : bool, default False,获得k中的k-1个类别值,去除第一个。

eg:

import pandas as pd
df = pd.DataFrame([  
            ['green' , 'A'],   
            ['red'   , 'B'],   
            ['blue'  , 'A']])  


df.columns = ['color',  'class']
pd.get_dummies(df)

get_dummies 前:
在这里插入图片描述
get_dummies 后:
在这里插入图片描述

有需要注意的是:

1、当Series里存在整数时,使用get_dummies按照one-hot进行编码,但是在DataFrame里面存在整数时不会

在这里插入图片描述
(这里C列没有进行编码)
Alt
(这里数字列进行了编码)

============================================
one hot encode:独热编码
当分类特征是离散的,无序的时(如性别有男、女,城市有北京,上海,深圳等),采用独热编码对数据进行处理。具体见参考1

哑变量:也叫虚拟变量,引入哑变量的目的是,将不能够定量处理的变量量化。如季节对某些产品(如冷饮)销售的影响等等。 这种“量化”通常是通过引入“哑变量”来完成的。

eg:哑变量处理
一些分类变量,例如季节、天气、月份。要在我们的模型中包含这些数据,需要用 Pandas 库中的 get_dummies()进行处理。

dummy_fields = ['season', 'weathersit', 'mnth', 'hr', 'weekday']
for each in dummy_fields:
    dummies = pd.get_dummies(rides[each], prefix=each, drop_first=False)    #实现实现one hot encode
    rides = pd.concat([rides, dummies], axis=1)  #合并

fields_to_drop = ['instant', 'dteday', 'season', 'weathersit', 
                  'weekday', 'atemp', 'mnth', 'workingday', 'hr'] 
data = rides.drop(fields_to_drop, axis=1)  #删除原来的
data.head()

==========================================
参考:

  1. https://www.jianshu.com/p/5f8782bf15b1(one hot解释)

  2. https://cloud.tencent.com/developer/article/1406408

发布了49 篇原创文章 · 获赞 0 · 访问量 714

猜你喜欢

转载自blog.csdn.net/xiuxiuxiu666/article/details/104296783