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.