Curso de Python para Ciencia de Datos

iloc vs loc en Pandas para filtrar datos

Curso de Python para Ciencia de Datos

Contenido del curso

NumPy

Pandas

iloc vs loc en Pandas para filtrar datos

Resumen

Seleccionar datos en Pandas es una de las habilidades base para cualquier análisis con Python, y dominar iloc y loc te permite filtrar filas, columnas o subconjuntos exactos dentro de un data frame. Aquí aprenderás cuándo usar cada método, cómo combinarlos con índices y etiquetas, y por qué fragmentar grandes volúmenes de datos es clave para proyectos reales.

¿Qué diferencia hay entre iloc y loc en Pandas?

La diferencia está en cómo accedes a la información. iloc trabaja por posición numérica (esa i viene de index), mientras que loc trabaja por etiqueta, es decir, el nombre de la fila o columna [01:00].

En ambos casos la notación es la misma: primero indicas filas y después columnas, separadas por una coma dentro de los corchetes.

¿Qué es iloc en Pandas? Es un selector que extrae filas y columnas usando su posición numérica dentro del data frame, empezando desde cero.

¿Qué es loc en Pandas? Es un selector que accede a los datos usando el nombre de la etiqueta de la fila o columna, no su posición.

¿Cómo usar iloc para extraer filas y columnas por índice?

Cuando quieres trabajar con posiciones, iloc es tu mejor aliado. Tanto filas como columnas inician en cero y terminan en el número total de datos menos uno.

Para extraer la primera fila del data frame retail_data, basta con indicar la posición:

python first_row = retail_data.iloc[0] print(first_row)

El resultado muestra cada columna con la información correspondiente a esa fila [01:40].

¿Cómo seleccionar varias filas con iloc?

Para traer una porción del data frame, usa el operador de slicing. Recuerda que el límite final no se incluye:

  • retail_data.iloc[0:5] devuelve las primeras cinco filas.
  • retail_data.iloc[6:8] devuelve las filas en posición 6 y 7.
  • retail_data.iloc[:5] también funciona dejando vacío el inicio.

¿Cómo extraer un subset combinando filas y columnas?

Puedes pedir un bloque específico indicando ambos rangos:

python subset = retail_data.iloc[0:3, 0:2]

Esto retorna las filas 0 a 2 y las columnas 0 y 1 [03:20]. Y si necesitas un único valor en una posición exacta, simplemente pasa los dos índices:

python retail_value = retail_data.iloc[1, 2]

El resultado es el dato puntual ubicado en la fila 1, columna 2.

¿Cómo usar loc para seleccionar datos por etiqueta?

loc cambia la lógica: en lugar de posiciones, le pasas el nombre del índice o de la columna. Para extraer la fila con índice 3:

python index_three = retail_data.loc[3]

A diferencia de iloc, cuando usas rangos con loc el valor final sí se incluye. Por ejemplo, retail_data.loc[0:4] devuelve cinco filas, de la 0 a la 4 [05:30].

¿Cómo seleccionar una columna completa con loc?

Para traer toda una columna por su nombre, indica todas las filas con : y la etiqueta exacta. Hay que respetar mayúsculas y minúsculas:

python quantity = retail_data.loc[:, 'Quantity']

El resultado es la columna completa más metadata como el nombre y el total de registros.

¿Cómo seleccionar varias columnas con loc?

Cuando necesitas más de una columna, debes pasarlas como lista:

python multiple_cols = retail_data.loc[:, ['Quantity', 'UnitPrice']]

Esta sintaxis es importante porque Pandas espera una colección cuando consultas múltiples etiquetas [07:45].

¿Por qué fragmentar la información en proyectos reales?

El set de datos del ejemplo contiene más de 500.000 filas, y en proyectos empresariales este volumen suele crecer mucho más. Trabajar con todo el data frame a la vez vuelve lento cualquier análisis y dificulta encontrar lo que buscas.

Una buena práctica al iniciar un análisis es dividir la información en porciones pequeñas para:

  • Hacer limpieza de datos sobre subconjuntos manejables.
  • Responder preguntas específicas del proyecto sin sobrecargar memoria.
  • Validar hipótesis antes de aplicar transformaciones masivas.
  • Construir un portafolio con ejemplos claros y reproducibles.

Un ejercicio útil es practicar con tu propio dataset: extrae las primeras filas con iloc, filtra columnas clave con loc y combina ambos métodos hasta sentirte cómodo navegando cualquier data frame. ¿Qué dataset vas a explorar primero? Cuéntame en los comentarios.