> lección 18/34 · 16 min

loc e iloc

Concepto

Para elegir filas, pandas tiene dos herramientas: iloc busca por posición (la primera fila, la tercera, las últimas cinco) y loc busca por etiqueta, es decir, por el valor del índice. Las dos aceptan también la columna, separada por una coma.

Sintaxis
df.iloc[posicion_fila, posicion_columna]
df.loc[etiqueta_fila, "columna"]

iloc: por posición. Funciona como los índices de una lista: empieza en 0, acepta negativos y rebanadas. iloc[1:4] toma las posiciones 1, 2 y 3: el final no se incluye.

ventas.iloc[0]       # la primera fila
ventas.iloc[-1]      # la última fila
ventas.iloc[1:4]     # las filas en posición 1, 2 y 3

Un índice con significado. Por defecto, el índice de un DataFrame es 0, 1, 2… Con set_index puedes usar una columna como índice, por ejemplo el número de cada venta.

por_venta = ventas.set_index("venta_id")

loc: por etiqueta. Ahora loc[5] busca la fila cuyo índice es 5, sin importar en qué posición esté. Con una coma eliges además la columna por su nombre.

por_venta.loc[5]                # la venta número 5
por_venta.loc[5, "producto"]    # su producto

Cuál usar. iloc cuando te importa el lugar ("las tres primeras", "la última"); loc cuando te importa la identidad ("la persona 10", "la región norte"). Si el orden de la tabla cambia, loc sigue apuntando al mismo registro y iloc no.

> tarea Python

Con encuesta ya cargada: guarda en ultimas las 3 últimas filas usando iloc. Después crea por_id usando respondent_id como índice, y guarda en edad_10 la edad de la persona con id 10 y en canal_7 el canal de la persona con id 7, usando loc.

Cargando Python… la primera vez puede tardar unos segundos.

Primero intenta: las pistas aparecen después de 2 intentos con un resultado incorrecto (los errores de código no cuentan). Llevas 0.

Aprueba las tareas de esta lección para ver el cierre.