Python – Leer archivo de Excel

pd.read_excel lee una hoja de cálculo y la convierte en una tabla con la que se puede trabajar: filtrar, ordenar, sumar. La primera fila se toma como nombre de las columnas.

Leerlo

pip install pandas openpyxl
import pandas as pd

leido = pd.read_excel("ejemplo.xlsx")
print(leido.columns.tolist())
print(leido)
salida['Id', 'Nombre', 'Apellido']
   Id Nombre   Apellido
0   1   Juan     Méndez
1   3    Eva      López
2   2  María       Tito
3   4  Pablo  Hernández

La columna de la izquierda, 0 a 3, no está en el archivo: es el índice que pandas pone a cada fila.

Una columna, un filtro

print(leido["Nombre"].tolist())
print(leido[leido["Id"] > 2])
salida['Juan', 'Eva', 'María', 'Pablo']
   Id Nombre   Apellido
1   3    Eva      López
3   4  Pablo  Hernández

Entre corchetes, una columna. Y entre corchetes, una condición sobre una columna devuelve las filas que la cumplen. Es la operación que más vas a usar.

Todas las hojas

todas = pd.read_excel("varias.xlsx", sheet_name=None)
print({k: len(v) for k, v in todas.items()})
salida{'Personas': 4, 'Ventas': 2}

Por omisión read_excel lee solo la primera hoja. Con sheet_name=None devuelve un diccionario con todas; con un nombre o un número, solo esa.

Mira qué ha deducido

print(leido.dtypes.to_dict())
salida{'Id': dtype('int64'), 'Nombre': <StringDtype(storage='python', na_value=nan)>, 'Apellido': <StringDtype(storage='python', na_value=nan)>}
pandas adivina el tipo de cada columna, y a veces se equivoca. Un código postal como 08013 se lee como el número 8013 y pierde el cero. Unas fechas mal escritas convierten la columna entera en texto. Si una columna tiene que ser texto, dilo: pd.read_excel(archivo, dtype={"cp": str}).

Más información en inglés: Read an Excel file in Python.

Todo el código se ejecutó con Python 3.14 en un contenedor limpio antes de publicar esta página; las salidas están copiadas de esa ejecución.

3 comentarios en «Python – Leer archivo de Excel»

Deja un comentario