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

如何用Pandas将Iris数据集目标Series的单值替换为数组实现独热编码?

解决Iris目标标签的独热编码问题

推荐:标准独热编码方案(适合建模)

直接用Pandas内置的pd.get_dummies生成独热编码的DataFrame,这是后续机器学习建模最常用的格式,避免把数组存在Series里的麻烦:

import pandas as pd
from sklearn.datasets import load_iris

# 加载数据并拆分目标标签
iris = load_iris()
y = pd.Series(iris.target, name='target')

# 生成独热编码DataFrame,每个类别对应一列
y_onehot = pd.get_dummies(y, prefix='target')

# 如果需要转成numpy数组供模型使用
y_onehot_array = y_onehot.to_numpy()

得到的y_onehot是一个3列的DataFrame,每行对应一个样本的独热编码(比如标签0对应[1,0,0],标签1对应[0,1,0]等)。

若需将标签替换为数组存储

如果你确实需要把Series中的每个标量标签换成对应的数组,可以用map方法(replace不适合处理数组替换,会导致元素对齐错误):

# 定义标签到数组的映射字典
label_to_array = {
    0: [1, 0, 0],
    1: [0, 1, 0],
    2: [0, 0, 1]
}

# 逐个替换Series中的元素
y_with_arrays = y.map(label_to_array)

此时y_with_arrays的每个元素就是对应的独热编码数组,注意这个Series的类型是object,因为存储的是列表对象,这种格式不适合直接输入模型,仅适合特定的自定义场景。

内容的提问来源于stack exchange,提问作者Micah Bassett

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 13:42:09