新能源汽车大数据学习篇 ----- 定类变量数值化方法(字典化编码 == 标签编码)

将定类变量数值化(编码)

#定义函数,将行驶模式(纯电、混动、燃油),档位(自动、倒档、驻车挡)、以及混动车的引擎启动状态信息转换为OneHot信息(定义分类变量)
def one_hot(df):
    r = pd.DataFrame(index=df.index)
    # 行驶模式(纯电、混动、燃油)
    one_hot_runmodel = {1:'runmodel_elec',2:'runmodel_hybrid',3:'runmodel_fuel'}
    for i in one_hot_runmodel:
        r.loc[df.runmodel==i,one_hot_runmodel[i]]=1
        r[one_hot_runmodel[i]]=r[one_hot_runmodel[i]].fillna(0)
    # 档位(自动、倒档、驻车挡)
    one_hot_gear={13:'gear_R',14:'gear_D',15:'gear_P'}
    for i in one_hot_gear:
        r.loc[df.gearnum==i,one_hot_gear[i]]=1
        r[one_hot_gear[i]]=r[one_hot_gear[i]].fillna(0)
    if 'enginestatus' in df.columns:
        r.loc[df.enginestatus==1,'enginestatus']=1
        r['enginestatus']=r['enginestatus'].fillna(0)
    return r

模式提取:

def 编码函数(局部变量df):
	进行DataFrame化  ----->  only_index = pd.DataFrame(index=df.index)
	对类别变量按照标签进行编码(打标签)----> 字典 = {key1:"类别变量", ......}  注意这种写法!
	for key in 字典:
		对DataFrame中的单元格进行赋值操作 ----> 用 loc函数定位,并完成指定类别下的赋值 --> only_index.loc[行定位,列定位] = 1
		没有的类别用缺失值填充
		
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值