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.

      iloc vs loc en Pandas para filtrar datos