1. ホーム
  2. スクリプト・コラム
  3. パイソン

[解決済み】ilocが「IndexError: single positional indexer is out-of-bounds」を出す。

2022-01-10 03:05:42

質問

機械学習モデルに読み込ませるために、以下のコードで機械学習モデルに読み込ませる情報をエンコードしています。

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

解決方法は?

このエラーの原因は、以下の通りです。

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

データセットに含まれるカラムが19未満であるため、カラム18が存在しないため、インデックス作成が範囲外になっているのでしょう。あなたが提供した次のコードは、Yを全く使用していないので、とりあえずこの行をコメントアウトすることができます。