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.