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

如何对电影数据集的整个Series_Title列应用Ordinal Encoding?

对整个Series_Title列应用序数编码的方法

方法一:使用Pandas内置Category类型(快速便捷)

无需单独创建小数据集,直接对原DataFrame的目标列处理即可:

# 在原数据中新增编码后的列
df['Series_Title_encoded'] = df['Series_Title'].astype('category').cat.codes

# 若需替换原列,执行:
# df['Series_Title'] = df['Series_Title'].astype('category').cat.codes

Pandas会自动为每个唯一电影名称分配唯一整数编码,编码顺序基于名称的字典排序。

方法二:使用Scikit-learn的OrdinalEncoder(适配机器学习工作流)

如果后续要配合Scikit-learn的其他工具(如数据集拆分、模型管道),这种方法更规范:

from sklearn.preprocessing import OrdinalEncoder

# 初始化编码器
encoder = OrdinalEncoder()

# 编码器要求输入为二维数组,因此用[[]]包裹列名
df['Series_Title_encoded'] = encoder.fit_transform(df[['Series_Title']])

该方法可保留编码器实例,后续处理测试数据时直接调用encoder.transform(test_data[['Series_Title']]),避免训练/测试集编码不一致。

注意事项

  • 序数编码的整数仅用于区分类别,无大小含义,适合树模型等对类别顺序不敏感的模型;若用线性回归等模型,需注意序数编码的局限性(1000个类别用独热编码会导致维度爆炸,因此序数编码仍是更优选择)。
  • 务必在拆分训练集和测试集前完成编码(或用fit_transform处理训练集、transform处理测试集),防止数据泄露。

内容的提问来源于stack exchange,提问作者Archit Chawla

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 04:01:25