ILOC geven ‘IndexError: Single Positional-indexer is out-of-bounds’

Ik probeer wat informatie te coderen om in een machine-leermodel te lezen met behulp van het volgende

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()

Ik krijg echter een foutmelding die leest

IndexError: single positional indexer is out-of-bounds

Antwoord 1, Autoriteit 100%

Deze fout wordt veroorzaakt door:

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

Indexering is hier hoogstens buiten de grenzen omdat er minder dan 19 kolommen in uw dataset zijn, zodat kolom 18 niet bestaat. De volgende code die u hebt opgegeven, gebruikt u helemaal niet, zodat u deze regel voor nu kunt opent.


Antwoord 2, Autoriteit 19%

Dit gebeurt wanneer u een rij / kolom indexeert met een nummer dat groter is dan de afmetingen van uw dataframe. Bijvoorbeeld, het krijgen van de elfde kolom wanneer je er maar drie hebt.

import pandas as pd
df = pd.DataFrame({'Name': ['Mark', 'Laura', 'Adam', 'Roger', 'Anna'],
                   'City': ['Lisbon', 'Montreal', 'Lisbon', 'Berlin', 'Glasgow'],
                   'Car': ['Tesla', 'Audi', 'Porsche', 'Ford', 'Honda']})

Je hebt 5 rijen en drie kolommen:

   Name      City      Car
0   Mark    Lisbon    Tesla
1  Laura  Montreal     Audi
2   Adam    Lisbon  Porsche
3  Roger    Berlin     Ford
4   Anna   Glasgow    Honda

Laten we proberen de elfde kolomte indexeren (deze bestaat niet):

df.iloc[:, 10] # there is obviously no 11th column

IndexError: enkele positionele indexer is buiten het bereik

Als je een beginner bent met Python, onthoud dan dat df.iloc[:, 10]zou verwijzen naar de elfde kolom.

Other episodes