使用sklearn加载Iris数据集后DataFrame缺失Species列问题求助
问题原因
- 现有代码仅传入了鸢尾花数据集的特征矩阵
load_iris().data生成DataFrame,物种分类标签存储在load_iris().target属性中,对应的物种文本名称存储在load_iris().target_names属性中,这部分数据未被加入DataFrame,因此缺少Species列。 - 重复调用
load_iris()会产生不必要的资源消耗,建议先将数据集对象赋值给变量后再调用属性。
修复代码
import numpy as np import pandas as pd from sklearn.datasets import load_iris # 预加载完整数据集对象 iris = load_iris() # 生成包含特征的基础DataFrame df = pd.DataFrame(iris.data, columns=iris.feature_names) # 映射物种编码为实际名称,新增Species列 df['Species'] = iris.target_names[iris.target]
运行上述代码后,生成的df就会包含Species列,列值为setosa、versicolor、virginica三类鸢尾花的实际名称。
内容的提问来源于stack exchange,提问作者Chefi
相关产品推荐
相关产品推荐

