Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

348
Vistas
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 Respuestas
Responde la pregunta

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 Denunciar

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 Denunciar

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 Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda