Filtrar pagos con pandas
Objetivos
Vas a convertir una pregunta concreta en una condición y aplicarla a las filas del extracto.
Concepto
La expresión payments["amount"] >= 5 compara cada importe, fila por fila, y produce una serie de valores True o False. Esa serie es una máscara: funciona como una lista de sí/no alineada con las filas y permite conservar solo las que dicen True. Por ejemplo, para importes [3.00, 5.00], la condición produce [False, True]; el límite se incluye porque el operador es >=.
Ejemplo
Parte de payments cargado en la lección anterior:
large_payments = payments.loc[
payments["amount"] >= 5.00,
["payment_id", "customer_id", "store_id", "amount", "payment_date"],
]
print(large_payments.sort_values("amount", ascending=False))loc recibe primero la condición de filas y luego las columnas que quieres conservar. La fila sigue siendo un pago, no un cliente.
Nota
Comprueba el umbral: cambiar >= 5.00 por > 5.00 excluye un pago que vale exactamente 5.00.
Práctica guiada
Cuenta cuántas filas pasan el filtro:
print(len(large_payments))Luego prueba el umbral >= 8.00 y observa cómo cambia el conteo.
Reto
Filtra los pagos de clientes cuya tienda principal asignada es la 2 y cuyo importe es menor que 5.00. Muestra payment_id, store_id y amount, y ordena por importe ascendente. No describas store_id como el lugar donde se procesó el pago.
Quiz
¿Qué devuelve payments["amount"] >= 5.00 antes de usarlo como filtro?
- A. Una serie de valores
TrueoFalse. - B. Un único importe promedio.
- C. Una lista de nombres de columna.
Respuesta: A. La comparación se evalúa fila por fila.
Comprobación
Escribe en una frase qué significa cada fila de large_payments. La siguiente lección usa store_id para agrupar pagos por la tienda principal asignada a cada cliente.