Ik probeer wat informatie te coderen om in een Machine Learning-model 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 met de tekst
IndexError: single positional indexer is out-of-bounds
Antwoord 1, autoriteit 100%
Deze fout wordt veroorzaakt door:
Y = Dataset.iloc[:,18].values
Indexeren is hier niet toegestaan, waarschijnlijk omdat er minder dan 19 kolommen in uw dataset zijn, dus kolom 18 bestaat niet. De volgende code die je hebt opgegeven, maakt helemaal geen gebruik van Y, dus je kunt deze regel nu gewoon uit commentaar plaatsen.
Antwoord 2, autoriteit 18%
Dit gebeurt wanneer u een rij/kolom indexeert met een getal dat groter is dan de afmetingen van uw dataframe
. Bijvoorbeeld de elfde kolom krijgen als 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.