Si has seguido un tutorial de análisis de datos con Python, has tomado un curso de datos en línea o has visto el proyecto de un científico de datos en GitHub, casi seguro te has encontrado con un Jupyter Notebook. Es la herramienta donde el código, los resultados, las gráficas y las explicaciones viven juntos en una sola página, y es la forma más popular de explorar datos con Python.
En esta guía vas a aprender qué es Jupyter Notebook, cómo instalarlo, cómo funcionan sus celdas y cómo usarlo para un análisis de datos real (y pequeño) con Pandas. También vas a conocer los atajos de teclado y los “comandos mágicos” que te hacen trabajar más rápido, además de los hábitos que mantienen tus notebooks limpios y confiables.
¿Qué Es Jupyter Notebook?

Jupyter Notebook es una aplicación gratuita y de código abierto que te permite escribir y ejecutar código en partes pequeñas, llamadas celdas, directamente en tu navegador web. El resultado de cada celda, ya sea un número, una tabla o una gráfica, aparece justo debajo de ella. Entre las celdas de código puedes escribir texto con formato, títulos y listas para explicar lo que estás haciendo.
El resultado es un documento que cuenta una historia: esta es la pregunta, este es el código, esto es lo que mostró y esto es lo que significa. Por eso es tan popular para el análisis de datos, la enseñanza y para compartir investigaciones.
Algunas ideas clave:
- Archivo de notebook: los notebooks se guardan como archivos
.ipynb(de Interactive Python Notebook, “cuaderno interactivo de Python”). El archivo guarda tu código, tu texto y tus resultados, así que alguien puede leer tus resultados sin ejecutar nada. - Celdas: los bloques con los que se construye un notebook. Las celdas de código contienen código; las celdas de Markdown contienen texto con formato.
- Kernel: el “motor” que ejecuta tu código en segundo plano. En Python es un proceso de IPython. El kernel recuerda todo lo que has ejecutado hasta que lo reinicias, y eso es lo que permite que una celda use una variable creada en otra.
- El nombre: Jupyter viene de tres de los primeros lenguajes que soportó: Julia, Python y R. Hoy soporta decenas de lenguajes, pero Python es, por mucho, el más común.
Por Qué los Analistas de Datos Usan Jupyter
- Respuesta inmediata. Ejecutas un paso, ves el resultado, ajustas y lo vuelves a ejecutar, sin correr todo el script otra vez. Así es exactamente como funciona la exploración de datos.
- Resultados junto al código. Las tablas y las gráficas aparecen debajo del código que las creó, así que nunca pierdes de vista qué resultado salió de dónde.
- Documentación integrada. Las celdas de Markdown te permiten explicar tu razonamiento, así que el notebook también funciona como reporte.
- Fácil de compartir. GitHub muestra los archivos
.ipynbcon sus resultados, y puedes exportar un notebook a HTML o PDF. - Ideal para aprender. Puedes dividir un problema en pasos pequeños y ver qué hace cada línea.
(¿Te interesa el análisis de datos como carrera? Consulta ¿Qué Es un Analista de Datos?.)
Jupyter Notebook vs. JupyterLab vs. Otras Opciones
Vas a ver varios nombres. Todos usan el mismo formato de archivo .ipynb:
| Herramienta | Qué es | Ideal para |
|---|---|---|
| Jupyter Notebook | La interfaz clásica y sencilla: un notebook por pestaña del navegador | Principiantes y trabajo enfocado |
| JupyterLab | La interfaz más nueva y completa, con explorador de archivos, pestañas, terminal y paneles lado a lado | El trabajo diario en proyectos más grandes |
| Google Colab | Un notebook gratuito alojado en la nube, en tu navegador; no hay nada que instalar | Probar Jupyter al instante o usar GPU gratuitas |
| VS Code | Un editor de código con soporte integrado para notebooks | Quienes ya programan en VS Code |
Si no estás seguro, empieza con Jupyter Notebook o Google Colab. Todo lo de esta guía funciona en cualquiera de ellos.
Cómo Instalar Jupyter Notebook
Necesitas tener Python 3 instalado. La mejor práctica es instalar Jupyter dentro de un entorno virtual, para que cada proyecto tenga sus propios paquetes. (Consulta Entornos Virtuales de Python: Guía de Configuración y Mejores Prácticas.)
Opción 1: pip
En macOS o Linux:
python3 -m venv .venv
source .venv/bin/activate
pip install notebook pandas matplotlib
jupyter notebook
En Windows, activa el entorno con .venv\Scripts\activate y usa python en lugar de python3.
El último comando inicia un servidor local de Jupyter y abre el panel principal en tu navegador: un explorador de archivos que muestra la carpeta desde la que lo iniciaste. Haz clic en New → Python 3 (ipykernel) para crear un notebook. Deja abierta la ventana de la terminal mientras trabajas; si la cierras, Jupyter se detiene.
Para JupyterLab, instala jupyterlab y ejecuta jupyter lab.
Opción 2: uv
Si usas uv, puedes abrir JupyterLab sin instalarlo en tu proyecto:
uv run --with jupyter jupyter lab
Opción 3: Anaconda
La distribución Anaconda instala Python, Jupyter, Pandas y cientos de paquetes de ciencia de datos en una sola descarga. Es práctica, pero pesada; las opciones de pip y uv te dan más control.
Cómo Funcionan las Celdas
Cada notebook es una lista de celdas. Vas a usar dos tipos:
- Celdas de código: ejecutan código y muestran el resultado debajo. A la izquierda verás
[ ]antes de que la celda se ejecute,[*]mientras se está ejecutando y un número como[3]después de ejecutarse. El número indica el orden en que se ejecutaron las celdas. - Celdas de Markdown: contienen texto con formato: títulos (
#), negritas (**texto**), listas, enlaces e incluso tablas. Ejecuta una celda de Markdown para que se muestre con formato.
Para ejecutar una celda, haz clic dentro de ella y presiona Shift + Enter. Jupyter la ejecuta y pasa a la siguiente celda.
Tu Primer Notebook
Crea un notebook nuevo, escribe esto en la primera celda y presiona Shift + Enter:
2 + 2
4
Jupyter muestra automáticamente el valor de la última línea de una celda, así que no necesitas print() para una revisión rápida. Aun así, puedes usar print() cuando quieras mostrar algo a mitad de una celda, o más de una cosa:
name = "Jupyter"
print(f"Hello, {name}!")
Hello, Jupyter!
Ahora, en una celda nueva:
name.upper()
'JUPYTER'
Esto funciona porque el kernel recuerda la variable name de la celda anterior. Todo lo que ejecutas se queda en memoria hasta que reinicias el kernel. Eso es lo que hace tan prácticos a los notebooks y, como verás más adelante, también es su mayor trampa. (Si eres nuevo en Python, empieza con Fundamentos de Python: Lo que Todo Principiante Debería Saber.)
Analizar Datos en un Notebook
Aquí es donde Jupyter brilla. Este ejemplo usa el conjunto de datos de la tienda en línea de Preguntas de Entrevista de SQL y Ciencia de Datos; descarga los archivos CSV desde esa publicación y ponlos en la misma carpeta que tu notebook.
Carga los datos y échales un vistazo:
import pandas as pd
orders = pd.read_csv("orders.csv")
orders.head()
order_id customer_id order_date status
0 101 1 2025-08-02 completed
1 102 2 2025-08-05 completed
2 103 1 2025-08-19 completed
3 104 3 2025-08-21 cancelled
4 105 4 2025-09-01 completed
En Jupyter, un DataFrame se muestra como una tabla HTML con buen formato; el texto de arriba muestra el mismo contenido.
Revisa su tamaño y cuenta los pedidos por estado, cada uno en su propia celda:
orders.shape
(60, 4)
orders["status"].value_counts()
status
completed 48
cancelled 6
pending 6
Name: count, dtype: int64
Combina las tablas y calcula los ingresos por categoría. Fíjate en que esta celda reutiliza orders y pd de celdas anteriores:
items = pd.read_csv("order_items.csv")
products = pd.read_csv("products.csv")
sales = items.merge(products, on="product_id").merge(orders, on="order_id")
completed = sales[sales["status"] == "completed"].copy()
completed["revenue"] = completed["quantity"] * completed["price"]
by_category = completed.groupby("category")["revenue"].sum().sort_values(ascending=False)
by_category
category
Home Office 4825.0
Electronics 4200.0
Stationery 469.5
Accessories 435.0
Name: revenue, dtype: float64
Grafícalo. Las gráficas aparecen justo debajo de la celda:
by_category.sort_values().plot(kind="barh", title="Revenue by Category (Completed Orders)");

El punto y coma al final oculta una línea de texto (<Axes: ...>) que Jupyter mostraría junto con la gráfica.
En unas cuantas celdas pequeñas pasaste de archivos CSV en bruto a un hallazgo: Home Office y Electronics generan más del 90% de los ingresos. Si agregaras una celda de Markdown que lo explique, tu notebook ya sería un pequeño reporte. (Para ir más allá, consulta Limpieza de Datos con Python Pandas y Visualización de Datos con Python.)
Atajos de Teclado
Jupyter tiene dos modos, y los atajos dependen del modo en que estés:
- Modo de edición (presiona Enter o haz clic dentro de una celda): estás escribiendo dentro de la celda.
- Modo de comando (presiona Esc): trabajas con las celdas como bloques: agregarlas, borrarlas y moverlas.
| Atajo | Modo | Qué hace |
|---|---|---|
| Shift + Enter | Ambos | Ejecuta la celda y pasa a la siguiente |
| Ctrl + Enter | Ambos | Ejecuta la celda y se queda en ella |
| Alt + Enter | Ambos | Ejecuta la celda e inserta una nueva debajo |
| A / B | Comando | Inserta una celda arriba (above) / abajo (below) |
| D, D (dos veces) | Comando | Borra la celda |
| Z | Comando | Deshace el borrado de una celda |
| M / Y | Comando | Cambia la celda a Markdown / código |
| C / X / V | Comando | Copia / corta / pega celdas |
| Tab | Edición | Autocompleta nombres |
| Shift + Tab | Edición | Muestra la documentación de una función |
En Mac, usa Cmd donde un atajo usa Ctrl para copiar y guardar, pero Ctrl + Enter sigue igual para ejecutar una celda.
Comandos Mágicos
Los comandos mágicos son comandos especiales de Jupyter que empiezan con % (para una línea) o %% (para toda la celda). No son Python, pero son muy útiles:
| Comando mágico | Qué hace |
|---|---|
%pip install pandas | Instala un paquete en el entorno en el que se está ejecutando el notebook |
%timeit expresión | Mide el tiempo de un fragmento corto de código ejecutándolo muchas veces |
%%time | Mide el tiempo de toda la celda, ejecutada una vez (va en la primera línea) |
%who | Muestra las variables que hay en memoria |
%run script.py | Ejecuta un archivo de Python y carga sus variables en el notebook |
%%writefile nombre.py | Guarda el contenido de la celda en un archivo |
Por ejemplo:
%timeit sum(range(1000))
19.7 μs ± 422 ns per loop (mean ± std. dev. of 7 runs, 10,000 loops each)
Tus números van a ser distintos; dependen de tu computadora.
Una línea que empieza con ! ejecuta un comando de terminal, como !ls (o !dir en Windows). Pero para instalar paquetes, usa %pip en lugar de !pip: !pip puede instalar en un Python distinto del que usa tu notebook, y eso provoca errores confusos de “module not found”.
La Mayor Trampa: el Estado Oculto
Como el kernel recuerda todo, un notebook puede llegar a un estado que ya no coincide con el código que ves. Por ejemplo:
- Ejecutas una celda que crea
total = 100. - Borras esa celda.
- Otra celda que usa
totalsigue funcionando, porquetotalsigue en memoria.
La próxima vez que tú (o alguien más) abra el notebook y lo ejecute desde el principio, va a fallar. Lo mismo pasa cuando ejecutas celdas fuera de orden, o cuando editas una celda y olvidas volver a ejecutar las siguientes. Números de ejecución desordenados como [7], [3], [12] son una señal de alerta.
La solución: antes de confiar en un notebook o compartirlo, usa Kernel → Restart Kernel and Run All Cells (reiniciar el kernel y ejecutar todas las celdas). Si se ejecuta sin errores de principio a fin, tus resultados son reproducibles.
Buenas Prácticas para Notebooks Limpios
- Reinicia y ejecuta todo antes de compartir tus resultados o confiar en ellos.
- Pon los
importy la configuración al principio, en la primera celda. - Usa títulos de Markdown para dividir el notebook en secciones: pregunta, datos, análisis y conclusión.
- Dale a cada celda una sola tarea. Las celdas cortas son más fáciles de leer, volver a ejecutar y depurar.
- Nunca pongas contraseñas ni claves de API en un notebook. El código y los resultados se guardan en el archivo, y es fácil subirlos a GitHub por accidente. Carga los secretos desde un archivo
.env. (Consulta La Importancia del Archivo .env en los Proyectos de Python.) - Borra los resultados grandes antes de hacer commit en Git. Usa Edit → Clear Outputs of All Cells para que los archivos sean pequeños y los cambios fáciles de revisar. (Consulta Domina Git: Comandos Básicos para el Control de Versiones.)
- Mueve el código reutilizable a archivos
.py. Cuando una función crezca o la necesites en varios notebooks, ponla en un módulo e impórtala.
Compartir y Exportar Notebooks
- GitHub muestra los archivos
.ipynbcon sus resultados, así que otras personas pueden leer tu análisis directamente en el navegador. - Google Colab puede abrir notebooks directamente desde GitHub o Google Drive, para que otros los ejecuten sin instalar nada.
- Exportar a HTML desde File → Save and Export Notebook As → HTML, o desde la terminal:
jupyter nbconvert --to html my_analysis.ipynb
Esto crea my_analysis.html, que cualquiera puede abrir en un navegador sin tener Python. También puedes exportar a PDF, pero requiere software adicional (como LaTeX).
Cuándo No Usar un Notebook
Los notebooks son ideales para explorar, aprender y explicar. No son la mejor opción para:
- Código de producción que se ejecuta de forma programada, como un flujo de datos nocturno. Usa scripts
.pynormales. - Aplicaciones grandes, como una aplicación web. (Consulta Python Flask: Guía Completa para Crear y Desplegar Aplicaciones Web.)
- Código que necesita pruebas automatizadas, que son mucho más fáciles de escribir para módulos
.py.
Un flujo de trabajo común es explorar en un notebook y luego pasar la lógica terminada a scripts.
Conclusión
Jupyter Notebook combina código, resultados, gráficas y explicaciones en un solo documento, y por eso es la herramienta favorita para explorar datos con Python. Aprendiste a instalarlo, cómo funcionan las celdas de código y de Markdown, cómo el kernel conserva las variables entre celdas, cómo analizar un conjunto de datos real con Pandas y cómo trabajar más rápido con atajos y comandos mágicos.
Sobre todo, recuerda el hábito que separa a los notebooks confiables de los confusos: reinicia el kernel y ejecuta todo desde el principio antes de confiar en tus resultados. Ahora abre un notebook nuevo, carga un conjunto de datos que te dé curiosidad y empieza a hacerle preguntas.
