1. ホーム
  2. python

[解決済み】ilocが「IndexError: single positional indexer is out-of-bounds」と表示される。

2022-01-25 23:43:29

質問

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

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を全く使用していないので、とりあえずこの行をコメントアウトすることができます。