pd.get_dummies()

pd.get_dummies()是Pandas中进行编码的函数(对原数据集中的某个类别做出判断,True or False),常常对类别特征进行独热编码(One_Hot Encoding)

类比: 给你一张全是判断题的试卷(输入的DataFrame),做完判断题上交的试卷(输出的DataFrame)

独热编码(One-Hot Encoding)简介:

它能够将分类特征转换为布尔值(True、False),每个类别对应一个列,如果记录属于该类别,则该列值为True,否则为False

函数参数:

data:要进行独热编码的数据

prefix:是否在每个列前面加一个前缀

columns:要进行独热编码的列的列表。如果不指定,则对所有对象列进行独热编码。

drop_first:布尔值,如果为 True,则每个经过独热编码的特征中的第一个列将被丢弃

dtype:输出数据的类型,默认为 np.uint8

示例: 

import pandas as pd

data = pd.DataFrame({
    'Color': ['Green', 'Red', 'Green', 'Blue'],
    'Age': [25, 30, 22, 40]
})

dummies = pd.get_dummies(data['Color'], prefix='Color')
print(dummies)

输出:

dummies会按照data中'Color'分类,并且给了一个前缀,那么原始的Color中有3个颜色就会有3列,与元素个数(4)无关。'Green', 'Red', 'Green', 'Blue'分别对应0-3,因此在’Color_Green‘列中第’0‘ 、’2‘行是True,其余为False,以此类推。

在很多情况下需要把布尔值(bool)转换为二进制(0、1):

dummies = dummies.astype(int)

或者

dummies = dummies * 1

输出:

输入参数如果有dummy_na:

       dummy_na: 是一个布尔值

如果为True,那就会缺失值(NaN)生成一个额外的列,因为缺失值会错位的解释为一个有效类别,创建一个缺失值的单独指标可以避免混淆,允许模型区分实际的类别和缺失值

例如:有一个DataFrame,里面有缺失值A、B、C、NaN,当dummy_na = True时,他们会生成单独的列
   Feature1  Feature2
0       A      20.0
1       B       NaN
2       C      30.0

输出如下,其中Feature1_A、B、C 列是为原始 Feature1 中的 'A、B、C' 类别创建的,Feature2_NA 列是为 Feature2 中的缺失值 NaN 创建的。

   Feature1_A  Feature1_B  Feature1_C  Feature2  Feature2_NA
0           1           0           0     20.0            0
1           0           1           0      NaN            1
2           0           0           1     30.0            0

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值