Google Colab para Data Science: Tutorial Completo

Google Colab es un servicio alojado de notebooks Jupyter. Permite ejecutar Python desde el navegador sin instalar un entorno local y puede ofrecer acceso a CPU, GPU o TPU. Es útil para aprender, explorar datos y compartir demostraciones, pero sus recursos gratuitos no son ilimitados ni están garantizados.
Qué guarda Colab y qué es temporal
El archivo .ipynb puede almacenarse en Google Drive o abrirse desde GitHub. El proceso que ejecuta las celdas vive en un runtime separado. La memoria, los archivos de /content y los paquetes instalados durante la sesión pueden desaparecer al desconectarse o reiniciarse.
Esta separación explica muchos problemas: guardar el notebook no guarda automáticamente el estado de Python ni los archivos temporales.
Crear un notebook reproducible
- Abre Colab y crea un notebook.
- Escribe una primera celda que instale dependencias con versiones compatibles.
- Carga datos desde una fuente documentada.
- Separa limpieza, análisis y visualización en celdas pequeñas.
- Reinicia el runtime y ejecuta todo desde cero antes de compartir.
# La versión forma parte del experimento
!pip install -q pandas==2.2.3 scikit-learn==1.6.1
import pandas as pd
import sklearn
print("pandas:", pd.__version__)
print("scikit-learn:", sklearn.__version__)
Las versiones del runtime cambian. Google recomienda usar normalmente la versión actual e instalar dependencias específicas; también mantiene versiones anteriores durante un periodo limitado para casos de compatibilidad.
Cargar datos de forma segura
Archivo local
from google.colab import files
subidos = files.upload()
import pandas as pd
df = pd.read_csv(next(iter(subidos)))
La carga manual sirve para ejercicios. No es reproducible si otra persona no conoce el origen ni la versión del archivo.
Google Drive
from google.colab import drive
drive.mount("/content/drive")
df = pd.read_csv("/content/drive/MyDrive/datos/ventas.csv")
Montar Drive concede al runtime acceso a los archivos autorizados. No compartas un notebook que dependa de rutas privadas sin explicar qué debe proporcionar el lector.
Descarga con URL verificable
import pandas as pd
url = "https://example.org/datasets/ventas-2026-01.csv"
df = pd.read_csv(url)
print(df.shape)
print(df.head())
Para proyectos serios, registra URL, fecha, licencia y checksum. Una dirección web puede mantener el nombre y cambiar el contenido.
Usar aceleradores
En el menú de runtime puedes solicitar un acelerador disponible. Después verifica qué asignó la sesión:
import tensorflow as tf
print(tf.config.list_physical_devices("GPU"))
Que una GPU esté disponible no significa que el código la utilice. Cargar datos, tokenizar o ejecutar operaciones pequeñas puede seguir en CPU. Mide tiempo y memoria antes de atribuir la mejora al acelerador.
Secretos y credenciales
No escribas claves API directamente en una celda. Pueden quedar en el historial, la salida o una copia compartida. Utiliza el gestor de secretos de Colab o solicita la credencial durante la sesión sin imprimirla.
from google.colab import userdata
api_key = userdata.get("MI_API_KEY")
if not api_key:
raise RuntimeError("Falta el secreto MI_API_KEY")
Configura permisos mínimos y revoca la clave si se expone. No cargues datos de clientes en una cuenta personal sin autorización y política de tratamiento.
Organizar un análisis
import pandas as pd
df = pd.read_csv("/content/drive/MyDrive/datos/ventas.csv")
requeridas = {"fecha", "pais", "importe"}
faltantes = requeridas - set(df.columns)
if faltantes:
raise ValueError(f"Faltan columnas: {sorted(faltantes)}")
df["fecha"] = pd.to_datetime(df["fecha"], errors="coerce")
df["importe"] = pd.to_numeric(df["importe"], errors="coerce")
resumen = (
df.dropna(subset=["fecha", "importe"])
.assign(mes=lambda x: x["fecha"].dt.to_period("M").astype(str))
.groupby(["mes", "pais"], as_index=False)["importe"]
.sum()
)
resumen.head()
La validación inicial evita que un cambio de columnas produzca un gráfico aparentemente correcto con datos incompletos.
Compartir sin filtrar información
- Borra salidas que contengan rutas, tokens o datos personales.
- Revisa permisos del notebook y de los archivos de Drive por separado.
- Usa un dataset sintético o anonimizado para una demostración pública.
- Incluye licencia y atribución de las fuentes.
- Ejecuta “reiniciar y ejecutar todo” antes de entregar.
Cuándo Colab no es suficiente
Colab no es un servicio de producción para tareas que deban ejecutarse siempre, conservar estado local o ofrecer un SLA. Para un pipeline programado utiliza un entorno con dependencias, credenciales, registros, almacenamiento y alertas administrados. Para colaboración de ingeniería, añade control de versiones más allá del historial del notebook.
La FAQ oficial de Colab confirma que los límites de recursos pueden fluctuar. Si el análisis crece, consulta la guía de Docker para ciencia de datos para construir un entorno más controlado.
Preguntas frecuentes
¿Colab es gratuito?
Existe acceso sin coste, con recursos y límites variables. También hay opciones de pago, cuya disponibilidad y condiciones deben verificarse en la página oficial.
¿Los archivos sobreviven al reinicio?
Los guardados en Drive sí; los que viven solo en el sistema temporal del runtime pueden desaparecer.
¿Puedo usar R o Scala?
El foco oficial es Python. Otros kernels no tienen el mismo soporte, aunque determinadas versiones de runtime pueden incluir herramientas adicionales.
