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

如何将sklearn加载的iris数据集np.array正确转为pd.DataFrame?

正确转换Scikit-learn鸢尾花数据集为Pandas DataFrame的方法

你的代码出错原因是:datasets.load_iris()返回的是一个字典,包含data、target、feature_names等多个键值对。直接把整个字典传给pd.DataFrame()构造函数,会导致数据维度不匹配,特征列无法正确填充,最终出现NaN。

以下是两种可靠的解决方法:

方法一:先合并特征与标签,再创建DataFrame

import pandas as pd
import numpy as np
from sklearn import datasets

# 加载鸢尾花数据集
iris = datasets.load_iris()
# 将标签转为二维数组,与特征数据拼接
combined_data = np.hstack((iris.data, iris.target.reshape(-1, 1)))
# 用拼接后的数据和完整列名创建DataFrame
df = pd.DataFrame(combined_data, columns=iris.feature_names + ['target'])

方法二:先创建特征DataFrame,再追加标签列

import pandas as pd
from sklearn import datasets

# 加载数据集
iris = datasets.load_iris()
# 用特征数据和特征名生成DataFrame
df = pd.DataFrame(iris.data, columns=iris.feature_names)
# 新增target列并赋值
df['target'] = iris.target

两种方法都能保证特征列和标签列正确填充,不会出现NaN问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 19:25:28