数据清洗-pandas中one-hot编码函数pd.get_dummies()

1 函数解释

离散特征的编码分为两种情况:

  • 离散特征的取值之间没有大小的意义,比如color:[red,blue],那么就使用one-hot编码
  • 离散特征的取值有大小的意义,比如size:[M,L,XL],那么就使用数值的映射{M:1,L:2,XL:3}

使用pandas.get_dummies()函数可以很方便的对离散型特征进行one-hot编码

pandas.get_dummies(data, prefix=None, prefix_sep='_', dummy_na=False,
columns=None, sparse=False, drop_first=False)

详细解释见官方文档

重要参数解释

  • data:array,Series或者DataFrame
  • prefix:类型-字符串,字符串列表或字符串字典,默认值为None。可用来增加一个与列数相等长度的列表作为DataFrame的列名。
  • dummy_na:布尔值,默认为False。若为True,增加一个列表示空值;若为False,忽略空值
  • column:类似于列表,默认值是None。 若columns是空,所有object或者category类型的列都会进行one-hot编码。
  • return:DataFrame

2 实例

import pandas as pd
df=pd.DataFrame([['XL','Green','A'],['L','Red','B'],['M','Blue','C'],['L','Yellow','D']])
df.columns=['Size','Color','Type']
df
SizeColorType
0XLGreenA
1LRedB
2MBlueC
3LYellowD
#将取值具有大小意义的Size列,使用map函数进行数值映射{M:1,L:2,XL:3}
df['Size']=df['Size'].map({'XL':3,'L':2,'M':1}).astype(int)
df
SizeColorType
03GreenA
12RedB
21BlueC
32YellowD
#将取值之间没有大小意义的Color列进行one-hot编码
df=pd.get_dummies(df,columns=['Color'])
df
SizeTypeColor_BlueColor_GreenColor_RedColor_Yellow
03A0100
12B0010
21C1000
32D0001
#不指定列,对Color列与Type列同时进行one-hot编码
df=pd.get_dummies(df)
df
SizeColor_BlueColor_GreenColor_RedColor_YellowType_AType_BType_CType_D
0301001000
1200100100
2110000010
3200010001
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值