建模时二值化处理oneHotEncoder与get_dummies要点

二值化处理几个注意点:

  1. 若用oneHotEncoder,注意该函数无法识别NA类型的,因为NA不是整数型,所以需要在二值化前对NA进行缺失值填补;可对指定变量进行编码。

  2. 如果用get_dummies函数,默认只对字符型变量编码,可把缺失值单独当成一个类别。
    若想对数值型编码,事先转换,例如:

demo_df['Integer Feature'] = demo_df['Integer Feauture'].astype(str)
pd.get_dummies(demo_df,columns = ['Integer Feature'])

一个例子:

a = pd.DataFrame(['YES','NO','YES','NO','NO','YES'],columns =['FEE'])
b = pd.get_dummies(a)

返回值b,是uint8格式,无法用于大多数建模的输入。需要转换。

b.info()

<class ‘pandas.core.frame.DataFrame’>
RangeIndex: 3 entries, 0 to 2
Data columns (total 1 columns):
0 3 non-null uint8
dtypes: uint8(1)
memory usage: 83.0 bytes

方法1:——对b处理

b  = b.astype(int)

方法2:——利用函数参数指定输出格式

 b = pd.get_dummies(a,dtype = int)
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值