数据挖掘-特征差异性编码

差异性编码快速写法

1、取set()

2、建pd.dataframe格式

3、merge()

arrs = ['adidmd5', 'imeimd5', 'macmd5', 'openudidmd5', 'ip']
val = []
for i in range(len(arrs)):
    val.append(list(set(train[arrs[i]].unique()) & set(test[arrs[i]].unique())))  

cols_md5 = []
for i in range(len(arrs)):  
    temp = pd.DataFrame(list(val[i]), columns=[arrs[i]])
    temp[arrs[i]+'_new'] = temp[arrs[i]]
    cols_md5.append(arrs[i]+'_new')
    print(cols_md5[i]+' done!')
    data = data.merge(temp, on = arrs[i], how = 'left')
    
for feat in cols_md5:
    temp = data.groupby([feat])['label'].count().reset_index().rename(columns={'label': "%s_count" % feat})
    data = data.merge(temp,on=[feat],how='left')
    print(feat+'_count done!')    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值