Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

339
Views
iloc dando 'IndexError: el indexador posicional único está fuera de los límites'

Estoy tratando de codificar información para leer en un modelo de Machine Learning usando lo siguiente

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

sin embargo, recibo un error que dice

 IndexError: single positional indexer is out-of-bounds
over 4 years ago · Santiago Trujillo
3 answers
Answer question

0

Este error es causado por:

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

La indexación está fuera de los límites aquí probablemente porque hay menos de 19 columnas en su conjunto de datos, por lo que la columna 18 no existe. El siguiente código que proporcionó no usa Y en absoluto, por lo que puede comentar esta línea por ahora.

over 4 years ago · Santiago Trujillo Report

0

Esto sucede cuando indexa una fila/columna con un número que es más grande que las dimensiones de su dataframe de datos. Por ejemplo, obtener la undécima columna cuando solo tiene tres.

 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']})

Tienes 5 filas y tres columnas :

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

Intentemos indexar la undécima columna (no existe):

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

IndexError: el indexador posicional único está fuera de los límites

Si es un principiante con Python, recuerde que df.iloc[:, 10] se referiría a la undécima columna.

over 4 years ago · Santiago Trujillo Report

0

No ayuda para la solución de la pregunta aquí, pero quien quiera que venga aquí por el error y no por el ejemplo, tuve este error IndexError: single positional indexer is out-of-bounds cuando traté de encontrar una fila en un dataframe2 mientras recorre las filas de dataframe1, usa muchos criterios en el filtro de dataframe2 y agrega cada fila encontrada a un nuevo dataframe3 vacío (¡No me preguntes por qué!). Uno de los valores en la fila era un valor "nan" tanto en dataframe1 como en dataframe2. Ya no pude filtrar ni agregar una nueva fila.

Solución:

 dataframe1.fillna("nan") # or whatever you want as a fill value dataframe2.fillna("nan")

y el script se ejecutó sin el error.

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!