> misión 3/9 · 25 min

Filtrar y seleccionar

Mensaje de Antonia Llancaqueo, cofundadora de Tienda Online Pewen

Atención al cliente me pide los pedidos devueltos para llamar a esos clientes. Y logística quiere los pedidos entregados de 3 unidades o más, solo con el número de pedido y la cantidad, para revisar el embalaje de los envíos grandes.

Concepto

Para filtrar filas, se escribe una condición entre corchetes. La condición da True o False para cada fila, y quedan solo las True:

import pandas as pd
pedidos = pd.read_csv("datos/pedidos.csv")
cancelados = pedidos[pedidos["estado"] == "cancelado"]
print(len(cancelados))

Para combinar condiciones se usan & (y) y | (o), con cada condición entre paréntesis:

pedidos[(pedidos["cantidad"] >= 3) & (pedidos["estado"] == "entregado")]

Para elegir columnas, se pasa una lista de nombres: pedidos[["pedido_id", "cantidad"]]. Filtrar filas y elegir columnas a la vez se hace con .loc[filas, columnas]:

pedidos.loc[pedidos["cantidad"] >= 3, ["pedido_id", "cantidad"]]

Es lo mismo que un WHERE con un SELECT de columnas en SQL.

> tarea Python

Guarda en devueltos los pedidos cuyo estado es devuelto.

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.

> tarea Python

Guarda en grandes los pedidos entregados de 3 unidades o más, solo con las columnas pedido_id y cantidad.

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.

> decisión

Escribes pedidos[pedidos["cantidad"] >= 3 & pedidos["estado"] == "entregado"] y Python responde con un error. ¿Por qué?

Cargando opciones…

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