You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用LabelEncoder编码列时报NoneType与str比较TypeError如何解决

报错原因

LabelEncoder拟合数据时会自动对特征取值做排序,你遇到该报错的核心原因是kat_df["GND_CODE"]列中存在未被发现的None/NaN缺失值,缺失值和字符串类型的'E'/'K'进行大小比较时触发了类型不兼容错误。
你可以先执行如下代码确认缺失值的存在:

# dropna=False 会统计缺失值的数量
print(kat_df["GND_CODE"].value_counts(dropna=False))
修复方案
  • 方案1:丢弃缺失值后编码
    如果缺失样本量极少、对业务无影响,可以直接过滤掉缺失行再编码:
from sklearn.preprocessing import LabelEncoder

lbe = LabelEncoder()
# 仅对非空值做编码
encoded_vals = lbe.fit_transform(kat_df["GND_CODE"].dropna())
  • 方案2:填充缺失值后编码
    如果需要保留所有样本,可以先给缺失值填充一个独立的占位符,将缺失值也作为单独一类处理:
from sklearn.preprocessing import LabelEncoder

lbe = LabelEncoder()
# 缺失值填充为自定义字符串后再编码
kat_df["GND_CODE_ENCODED"] = lbe.fit_transform(kat_df["GND_CODE"].fillna("MISSING"))

内容的提问来源于stack exchange,提问作者nefi。

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 10:24:00