iloc 给出“IndexError:单个位置索引器超出范围”

新手上路,请多包涵

我正在尝试使用以下代码对一些信息进行编码以读入机器学习模型

import numpy as np
import pandas as pd
import matplotlib.pyplot as py

Dataset = pd.read_csv('filename.csv', sep = ',')

X = Dataset.iloc[:,:-1].values
Y = Dataset.iloc[:,18].values

from sklearn.preprocessing import LabelEncoder, OneHotEncoder
labelencoder_X = LabelEncoder()
X[:, 0] = labelencoder_X.fit_transform(X[:, 0])
onehotencoder = OneHotEncoder(categorical_features = [0])
X = onehotencoder.fit_transform(X).toarray()

但是我收到一个错误消息

IndexError: single positional indexer is out-of-bounds

原文由 Taylrl 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.7k
1 个回答

此错误是由以下原因引起的:

 Y = Dataset.iloc[:,18].values

此处的索引超出范围很可能是因为您的数据集中的列少于 19 列,因此第 18 列不存在。您提供的以下代码根本不使用 Y,因此您现在可以注释掉这一行。

原文由 slonopotam 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题