Trabajando con Excel en Python

Leer, transformar y guardar datos

¿Por qué trabajar con Excel?

  • Es uno de los formatos más usados
  • Datos reales casi siempre vienen en .xlsx
  • Muchas tareas son repetitivas

Problemas comunes

  • filtrar manualmente
  • copiar y pegar
  • errores humanos
  • archivos grandes

💡 Idea clave

Python puede hacer esto automáticamente.

Librería principal

import pandas as pd

Leer un archivo de Excel

df = pd.read_excel("datos.xlsx")

Ver los primeros datos

df.head()

¿Qué es df?

Es un DataFrame:

  • tabla
  • filas
  • columnas
  • datos estructurados

Ver nombres de columnas

df.columns

Seleccionar una columna

df["edad"]

Filtrar datos

df_filtrado = df[df["edad"] > 18]

Filtrar con múltiples condiciones

df_filtrado = df[(df["edad"] > 18) & (df["ciudad"] == "Bogotá")]

Crear una nueva columna

df["mayor_edad"] = df["edad"] >= 18

Modificar datos

df["edad"] = df["edad"] + 1

Guardar en un nuevo Excel

df.to_excel("resultado.xlsx", index=False)

Trabajar con varias hojas

df = pd.read_excel("archivo.xlsx", sheet_name="Hoja1")

Guardar múltiples hojas

with pd.ExcelWriter("salida.xlsx") as writer:
    df.to_excel(writer, sheet_name="Datos")

Ejemplo real

Archivo: estudiantes.xlsx

Queremos:

  • filtrar mayores de edad
  • guardar resultado
import pandas as pd

df = pd.read_excel("estudiantes.xlsx")
df = df[df["edad"] >= 18]

df.to_excel("mayores.xlsx", index=False)

💡 Esto ya es automatización

  • leer
  • filtrar
  • guardar

Sin abrir Excel.

Error común

Olvidar:

index=False

Resultado:

→ aparece una columna extra innecesaria

Reto

Tienes un archivo ventas.xlsx

Debes:

  • filtrar ventas mayores a 100
  • guardar en ventas_altas.xlsx

Solución

import pandas as pd

df = pd.read_excel("ventas.xlsx")
df = df[df["ventas"] > 100]

df.to_excel("ventas_altas.xlsx", index=False)

Cierre

Python permite trabajar con Excel de forma:

  • rápida
  • reproducible
  • sin errores manuales