使用sklearn.fetch_openml下载MNIST后访问数据报KeyError:0求助
解决MNIST数据X[0]访问触发KeyError的问题
直接解决方案
- 使用Pandas的位置索引方法访问第一行:
X.iloc[0] # 获取第一行数据 - 或者转换为NumPy数组后按列表方式访问:
# 新版Pandas推荐用法 X = X.to_numpy() # 旧版Pandas可用 # X = X.values X[0] # 现在可以正常访问第一行
问题原因
fetch_openml('mnist_784', version=1)返回的mnist["data"]是Pandas DataFrame对象,不是普通Python列表。DataFrame的[]操作符是用于按列名(键)查询列数据的,而非按行的位置索引。你输入X[0]时,Python会尝试查找名为"0"的列,而数据集里不存在这个列名,因此触发KeyError: 0。
验证数据结构的正确方式
在Jupyter Notebook中执行以下命令确认类型和结构:
type(X) # 输出应为 pandas.core.frame.DataFrame X.head() # 查看前5行数据的列名和内容
内容的提问来源于stack exchange,提问作者Medik Medikovich
相关产品推荐
相关产品推荐

