¿Te resulta más fácil leer con fondo crema, un tono de color, más contraste o un texto más grande? Elige tus colores y tu texto una sola vez, para todas las páginas.

Lección gratuita

Leer y filtrar filas con Python

La lección completa está aquí para leer. Crea una cuenta gratuita para ejecutar sus comandos en un laboratorio y hacer sus cuestionarios y tareas.

Lección de 45 minSin comandos

¿Cuántos pedidos siguen sin salir?

Empiezas a trabajar en una tienda online de aceite de oliva de Jaén. Tu jefa te pasa la exportación de pedidos del mes.

Te pregunta: "¿Cuántos pedidos siguen pendientes de envío?"

El archivo tiene 4.000 filas. Nadie las mira una a una. Con unas pocas líneas de Python tienes la respuesta en un segundo.

Al final de esta lección

Nota

Puedo leer y filtrar filas de datos con Python.

Palabras clave

PalabraQué significaEjemplo
Filaun registro completo, como un pedido
Columnaun dato que tiene cada filaprovince
Diccionariovalores guardados bajo un nombre{"status": "pendiente"}
Lista de diccionariosuna tabla: un diccionario por fila
Filtrarquedarse solo con las filas que pasan una prueba

Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.

Cada fila es un diccionario

Piensa en una hoja de cálculo. Arriba están los nombres de las columnas. Cada pedido ocupa una fila.

En Python, una fila es un diccionario. Cada nombre de columna es una clave. La clave te da el valor de esa fila.

La tabla entera es una lista de diccionarios. orders[0] es la primera fila. orders[0]["province"] es su provincia.

Nombres en inglés

Consejo

Los nombres de variables y claves van en inglés, como en la mayoría de empresas. Así tu código se entiende en cualquier equipo. Los textos que lee una persona van en español.

Lee una fila y un valor

Código: python
# Cada pedido es una fila: un diccionario con el nombre de la columna y su valor.
orders = [
    {"id": 1201, "province": "Madrid", "total": 42.50, "status": "enviado"},
    {"id": 1202, "province": "Sevilla", "total": 18.90, "status": "pendiente"},
    {"id": 1203, "province": "Madrid", "total": 75.00, "status": "pendiente"},
]

print("Filas en la tabla:", len(orders))
print("Primer pedido:", orders[0]["id"])
print("Provincia del primer pedido:", orders[0]["province"])

# Cambia la última línea para mostrar el estado del tercer pedido.
print("Importe del segundo pedido:", orders[1]["total"])

Los mismos pedidos, paso a paso

PythonQué esValor
len(orders)el número de filas3
orders[0]la primera filatodo el pedido 1201
orders[0]["province"]un dato de la primera filaMadrid
orders[2]["total"]un dato de la tercera fila75.0

Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.

Un bucle y un if filtran filas

Para filtrar, miras cada fila por turno. De eso se encarga el bucle for.

Dentro del bucle, un if pone a prueba la fila. Si pasa, append la añade a una lista nueva.

Al terminar, la lista nueva solo tiene las filas que querías. len te dice cuántas son.

Quédate con los pendientes

Código: python
orders = [
    {"id": 1201, "province": "Madrid", "total": 42.50, "status": "enviado"},
    {"id": 1202, "province": "Sevilla", "total": 18.90, "status": "pendiente"},
    {"id": 1203, "province": "Madrid", "total": 75.00, "status": "pendiente"},
    {"id": 1204, "province": "Bizkaia", "total": 31.20, "status": "enviado"},
    {"id": 1205, "province": "Valencia", "total": 9.95, "status": "pendiente"},
]

# Las filas que pasan la prueba van a una lista nueva.
pending = []
for order in orders:
    if order["status"] == "pendiente":
        pending.append(order)

for order in pending:
    print(order["id"], order["province"], order["total"])
print("Pedidos pendientes:", len(pending))

# Cambia la prueba para quedarte con los pedidos de Madrid.

Un error frecuente

Advertencia

Mucha gente cree que filtrar borra las filas que no pasan. No es así. El bucle llena una lista nueva y la original conserva todas sus filas. Por eso puedes volver a filtrar los mismos pedidos con otra prueba.

Tu turno: los pedidos grandes

El equipo de atención al cliente llama a quien gasta mucho para darle las gracias. Necesita los pedidos de un importe mínimo o más. Escribe una función que los filtre. Unas pruebas ocultas comprueban tu respuesta.

¿Enseñas a una clase? Asigna este módulo a tus alumnos con guía del profesor, tareas con corrección automática y un laboratorio para cada alumno.