烟台制作网站有哪些,南阳企业网站建设公司,做网站需要什么营业执照,cve wordpress问题#xff1a;sklearn的LabelEncoder函数遇到新值报错
sklearn的LabelEncoder函数#xff0c;在fit结束后#xff0c;对dataframe数据进行transform的时候#xff0c;如果遇到了没在fit时编码规则里的新值#xff0c;会出现代码报错#xff0c;不同于spark的LabelEnco…问题sklearn的LabelEncoder函数遇到新值报错
sklearn的LabelEncoder函数在fit结束后对dataframe数据进行transform的时候如果遇到了没在fit时编码规则里的新值会出现代码报错不同于spark的LabelEncoder碰到新值会给你编成len1。
解决办法基于编码规则的修改
1、保存编码字典
from sklearn.preprocessing import LabelEncoderle preprocessing.LabelEncoder()
le.fit(X)# label编码其实就是映射的字典将编码字典保存
le_dict dict(zip(le.classes_, le.transform(le.classes_)))
2、数据判断
检索单个新项目的标签如果项目丢失则将值设置为未知
le_dict.get(new_item, Unknown)
3、批量检索 Dataframe 列的标签
df[col] df[col].apply(lambda x: le_dict.get(x, Unknown))# 再将新值删除
df df[df[col] ! Unknown]
df[col] df[col].astype(dtypeint64)