DÍA 02Análisis de pagos con pandas · Python para Análisis de Datos y Estadística

Usa una condición booleana para encontrar pagos por encima de un importe elegido.

Día 2 14 minInicial

Sakila: pagos de clientes (datos sintéticos de práctica)

Ocho filas sintéticas con seis columnas de un JOIN payment/customer; grano: pago; clave: payment_id. Sin nombres ni datos personales.

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 True o False.
  • 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.

TU PROGRESO

Cargando estado…