> lección 19/34 · 16 min

Filtros booleanos

Concepto

Filtrar es quedarse solo con las filas que cumplen una condición: las ventas de marzo, las respuestas con nota baja, los clientes de una región. En pandas se hace en dos pasos, aunque casi siempre se escriben en una línea.

Sintaxis
df[df["columna"] > valor]

1. La máscara. Una comparación sobre una columna no da un solo True o False: da una Series con un True o False por fila. A eso se le llama máscara booleana.

ventas["monto"] > 100000   # True, False, False, …

2. Filtrar con la máscara. Si pones la máscara entre corchetes, el DataFrame devuelve solo las filas donde la máscara es True. El resultado es otro DataFrame: la tabla original no cambia.

ventas_grandes = ventas[ventas["monto"] > 100000]

Combinar condiciones: & y |. Para dos condiciones a la vez se usa & (y) y para una u otra, | (o). Cada condición va entre paréntesis. Con and u or, pandas da un error, porque esas palabras esperan un solo True o False, no una columna entera.

ventas[(ventas["region"] == "sur") & (ventas["monto"] > 40000)]
ventas[(ventas["region"] == "norte") | (ventas["region"] == "centro")]

isin: varios valores permitidos. Cuando la condición es "que sea uno de estos", isin es más corto que encadenar |.

ventas[ventas["region"].isin(["norte", "centro"])]

Contar lo filtrado. len(filtrado) dice cuántas filas cumplieron la condición.

> tarea Python

Con encuesta ya cargada: guarda en satisfechos las respuestas con calificación 4 o más. Guarda en web_satisfechos las que, además de tener calificación 4 o más, llegaron por el canal web, y en cantidad_web_satisfechos cuántas son. Por último, guarda en presenciales las respuestas de los canales tienda o telefono.

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.