sklearn的LabelEncoder 遇到新值的解决办法

问题:sklearn的LabelEncoder函数遇到新值报错

sklearn的LabelEncoder函数,在fit结束后,对dataframe数据进行transform的时候,如果遇到了没在fit时编码规则里的新值,会出现代码报错,不同于spark的LabelEncoder碰到新值会给你编成len+1。

解决办法:基于编码规则的修改

1、保存编码字典

复制代码
from sklearn.preprocessing import LabelEncoder

le = 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(dtype='int64')
相关推荐
guoketg7 小时前
Vision Transformer(ViT)的讲解和面试题目讲解
人工智能·python·深度学习·vit
Dontla7 小时前
Mock Interview模拟面试,20260108,MNC第二面技术面,AI Engineer
人工智能·面试·职场和发展
小咖自动剪辑7 小时前
免费超强图片压缩工具:批量操作 + 高效传输不失真
人工智能·音视频·语音识别·实时音视频·视频编解码
纠结哥_Shrek7 小时前
不均衡分布原则进行选品
大数据·人工智能
北京耐用通信7 小时前
耐达讯自动化“通关文牒”:Canopen转Profibus网关,贴片机的“协议通关秘籍”
人工智能·科技·网络协议·自动化·信息与通信
_codemonster7 小时前
计算机视觉入门到实战系列(六)边缘检测sobel算子
人工智能·计算机视觉
杀生丸学AI7 小时前
【平面重建】3D高斯平面:混合2D/3D光场重建(NeurIPS2025)
人工智能·平面·3d·大模型·aigc·高斯泼溅·空间智能
小oo呆7 小时前
【学习心得】Python的Pydantic(简介)
前端·javascript·python
九河_7 小时前
四元数 --> 双四元数
人工智能·四元数·双四元数
岚天start7 小时前
【日志监控方案】Python脚本获取关键字日志信息并推送钉钉告警
python·钉钉·日志监控