Módulos de la biblioteca estándar
Python viene con "baterías incluidas": una colección enorme de módulos listos para usar sin instalar nada. Esta lección cubre los 6 que vas a usar todos los días como analista: math, datetime, random, json, os y collections.
Concepto teórico
¿Qué es un módulo y cómo se importa?
Un módulo es un archivo .py que contiene funciones, clases y variables que podés
reutilizar. La biblioteca estándar (stdlib) son los módulos que vienen con Python — no
necesitás instalar nada con pip. Hay tres formas de importar:
import math # importar el módulo completo → math.sqrt() from math import sqrt, pi # importar solo lo que necesitás → sqrt() from math import sqrt as raiz # importar con alias → raiz()
math — funciones matemáticas
| Función | Qué hace | Ejemplo | Resultado |
|---|---|---|---|
math.sqrt(x) |
Raíz cuadrada | sqrt(144) |
12.0 |
math.ceil(x) |
Redondeo hacia arriba | ceil(3.1) |
4 |
math.floor(x) |
Redondeo hacia abajo | floor(3.9) |
3 |
math.log(x) |
Logaritmo natural (ln) | log(math.e) |
1.0 |
math.log10(x) |
Logaritmo base 10 | log10(1000) |
3.0 |
math.pi |
Constante π | math.pi |
3.14159... |
math.e |
Constante e (Euler) | math.e |
2.71828... |
math.pow(x, y) |
x elevado a y (float) | pow(2, 10) |
1024.0 |
math.factorial(n) |
Factorial de n | factorial(5) |
120 |
math.log() se usa para calcular retornos
logarítmicos en series financieras: retorno = math.log(precio_hoy / precio_ayer).
math.ceil() sirve para redondear cuotas hacia arriba (nunca le cobrás de menos al banco).
math.sqrt() aparece en cálculos de volatilidad y desvío estándar.
datetime — fechas y horas
El módulo datetime es fundamental para análisis de datos. Los campos de fecha aparecen en CADA
dataset (fecha de transacción, fecha de alta, fecha de vencimiento). Sus clases principales:
datetime.datetime— fecha + hora:2025-03-15 10:30:00datetime.date— solo fecha:2025-03-15datetime.timedelta— diferencia entre fechas:30 days
Los métodos clave: .now() (fecha actual), .strftime(formato) (fecha → string),
.strptime(string, formato) (string → fecha), y aritmética con timedelta.
strftime (format → convierte fecha a
string) con strptime (parse → convierte string a fecha). El truco: format tiene f,
parse tiene p.
random — números aleatorios
Útil para simulaciones, muestreo, y generación de datos de prueba:
| Función | Qué hace | Ejemplo |
|---|---|---|
random.randint(a, b) |
Entero aleatorio entre a y b (incluidos) | randint(1, 100) |
random.random() |
Float entre 0.0 y 1.0 | random() |
random.uniform(a, b) |
Float entre a y b | uniform(100, 200) |
random.choice(seq) |
Elemento aleatorio de una secuencia | choice(["A","B","C"]) |
random.sample(seq, k) |
k elementos sin repetición | sample(range(100), 5) |
random.shuffle(lista) |
Mezcla in-place | shuffle(mi_lista) |
random.seed(n) |
Fija la semilla (reproducibilidad) | seed(42) |
random.seed(42) antes de
generar números, SIEMPRE obtenés la misma secuencia. Esto es crítico en ciencia de datos: si tu análisis depende
de aleatoriedad, necesitás que sea reproducible. En sklearn:
train_test_split(X, y, random_state=42) usa este mismo principio.
json — leer y escribir JSON
JSON (JavaScript Object Notation) es el formato estándar de las APIs web. En Python, JSON se mapea directamente a diccionarios y listas:
json.dumps(dict)— dict/list → string JSON (conindent=2para formato legible)json.loads(string)— string JSON → dict/listjson.dump(dict, archivo)— dict → archivo JSONjson.load(archivo)— archivo JSON → dict
os — interacción con el sistema operativo
Para manejar archivos, carpetas y rutas. Los más usados: os.path.exists(),
os.listdir(), os.getcwd(), os.path.join(), os.makedirs().
collections — estructuras de datos especializadas
Ya viste Counter, defaultdict y namedtuple. Son las herramientas de
collections que usás constantemente en análisis de datos.
Ejemplos explicados paso a paso
Ejemplo 1: math para cálculos financieros
Hacé clic en ▶ Ejecutar
Ejemplo 2: datetime — fechas en el mundo real
Hacé clic en ▶ Ejecutar
Ejemplo 3: random — simulaciones y muestreo
Hacé clic en ▶ Ejecutar
Ejemplo 4: json — serializar y parsear datos
Hacé clic en ▶ Ejecutar
Ejemplo 5: os y collections combinados
Hacé clic en ▶ Ejecutar
Referencia rápida
| Módulo | Funciones clave | Uso principal |
|---|---|---|
math |
sqrt ceil floor log pi e factorial |
Cálculos matemáticos y financieros |
datetime |
now strftime strptime timedelta |
Fechas, vencimientos, antigüedad |
random |
randint choice sample seed gauss |
Simulaciones, muestreo, datos de prueba |
json |
dumps loads dump load |
Serializar/parsear datos JSON/APIs |
os |
path.join listdir getcwd makedirs |
Archivos, rutas, sistema |
collections |
Counter defaultdict namedtuple |
Conteo, agrupación, registros |
| Formato datetime | Significado | Ejemplo |
|---|---|---|
%d |
Día (01-31) | 15 |
%m |
Mes (01-12) | 03 |
%Y |
Año 4 dígitos | 2025 |
%H |
Hora 24h | 14 |
%M |
Minutos | 30 |
%A |
Día de la semana | Saturday |
Ejercicios
Ejercicio 1: math.ceil para cuotas
Un préstamo de $157,000 se divide en 6 cuotas. Usá math.ceil() para redondear la cuota hacia
arriba. Debe incluir 26167.
Hacé clic en ▶ Ejecutar
Ejercicio 2: Fecha actual formateada
Imprimí la fecha actual en formato argentino dd/mm/yyyy usando strftime. Debe
incluir /.
Hacé clic en ▶ Ejecutar
Ejercicio 3: random.choice
Usá random.seed(42) y random.choice() para elegir un ticker de
["GGAL","YPF","PAMP","MELI"]. Imprimí el elegido. Debe incluir el nombre del ticker.
Hacé clic en ▶ Ejecutar
Ejercicio 4: Calcular antigüedad en días
Un cliente se dio de alta el "15/03/2020". Parseá la fecha con strptime, calculá
los días de antigüedad respecto a hoy e imprimí. Debe incluir días.
Hacé clic en ▶ Ejecutar
Ejercicio 5: json.dumps con formato
Creá un dict de cotización (ticker, precio, volumen, fecha) y convertilo a JSON con indent=2.
Debe incluir "ticker" (con comillas, formato JSON).
Hacé clic en ▶ Ejecutar
Ejercicio 6: Generar vencimientos mensuales
Desde date(2025, 1, 10), generá 6 vencimientos mensuales (sumando 30 días cada vez) e imprimí en
formato dd/mm/yyyy. Debe incluir 10/03/2025.
Hacé clic en ▶ Ejecutar
Ejercicio 7: Simulación con random y seed
Con seed(123), simulá 12 meses de retornos con random.gauss(0.005, 0.02) sobre
capital $100,000. Imprimí saldo final. Debe incluir Final.
Hacé clic en ▶ Ejecutar
Ejercicio 8: Parsear JSON de API simulada
Dado un string JSON, parsealo, extraé los datos y calculá el valor total de la cartera. Debe incluir
2120000.
Hacé clic en ▶ Ejecutar
Ejercicio 9: Generar dataset de prueba
Con seed(0), generá 5 clientes con nombre aleatorio de una lista, score entre 400-900, saldo
entre 10K-500K. Guardá como lista de dicts. Debe incluir score.
Hacé clic en ▶ Ejecutar
Ejercicio 10: Reporte completo con todos los módulos
Combiná math, datetime, random, json y collections: (1) generá 10 transacciones aleatorias (seed 42) con
fecha, tipo, monto, (2) contá tipos con Counter, (3) calculá estadísticas con math, (4) serializá a JSON, (5)
imprimí reporte con fecha formateada. Debe incluir REPORTE.
Hacé clic en ▶ Ejecutar
Resumen y conexión
math: sqrt, ceil, floor, log, pi — cálculos matemáticos y financieros.datetime: now, strftime/strptime, timedelta — fechas, vencimientos, antigüedad.random: randint, choice, sample, seed — simulaciones reproducibles y muestreo.json: dumps/loads — serializar y parsear datos para APIs y archivos.os: path.join, listdir, getcwd — manejar archivos y rutas.collections: Counter, defaultdict, namedtuple — estructuras de datos especializadas.- Imports al inicio del archivo, uno por línea, agrupados (stdlib → terceros → propios).
En la siguiente lección (21 · Módulos de pip) vas a aprender a instalar paquetes externos como pandas, numpy y requests — el ecosistema que hace de Python el lenguaje #1 para datos.
Recursos: Python Standard Library