miércoles, 5 de agosto de 2026

❓ ¿Cuánto tiempo tardas en hacer esto en Excel?

→ Leer un CSV de 500.000 filas

→ Filtrar por 3 condiciones
→ Agrupar por ciudad y calcular la media de ventas
→ Unir con otro archivo por ID de cliente
→ Exportar el resultado
En Excel: 15-20 minutos (si no se cuelga).
En Pandas: 8 líneas de código. Menos de 1 segundo.

Y eso es exactamente lo que yo hacía en mi trabajo antes de descubrir Python.

Por eso he creado esta 𝗛𝗼𝗷𝗮 𝗱𝗲 𝗥𝗲𝗳𝗲𝗿𝗲𝗻𝗰𝗶𝗮 𝗱𝗲 𝗣𝗮𝗻𝗱𝗮𝘀 𝗴𝗿𝗮𝘁𝘂𝗶𝘁𝗮:

📄 Lo que encontrarás:

🔹 Leer cualquier fuente — CSV, Excel, JSON, SQL
🔹 Filtrar, ordenar y seleccionar como un pro
🔹 groupby + pivot_table = adiós Excel dinámicas
🔹 Combinar DataFrames (merge = BUSCARV pero mejor)
🔹 Limpiar datos sucios en segundos
🔹 Series temporales y resample por período
🔹 Visualizar datos directamente desde el DataFrame
🔹 Los 24 métodos que usarás el 90% del tiempo

📎 Adjunta en esta publicación. Descárgala y guárdala.

——

Yo vengo del mundo contable.
Llevo más de 20 años trabajando con números en hojas de cálculo.

Cuando automaticé mi primer informe con Pandas fue el momento en que entendí que no había vuelta atrás.

Si tú también quieres ese cambio → sígueme en 👉 @josecodetech.

¿Cuántas horas a la semana pierdes haciendo en Excel lo que Pandas haría en segundos? 

miércoles, 29 de julio de 2026

Hoja resumen numpy

 🔢 NumPy es hasta 100x más rápido que las listas de Python.


Y sin embargo, muchos desarrolladores lo siguen ignorando.


He preparado una 𝗛𝗼𝗷𝗮 𝗱𝗲 𝗥𝗲𝗳𝗲𝗿𝗲𝗻𝗰𝗶𝗮 𝗥á𝗽𝗶𝗱𝗮 𝗱𝗲 𝗡𝘂𝗺𝗣𝘆 completa y gratuita.


𝟭𝟱 𝘀𝗲𝗰𝗰𝗶𝗼𝗻𝗲𝘀 𝗲𝗻 𝘂𝗻 𝘀𝗼𝗹𝗼 𝗣𝗗𝗙:


▸ Creación de arrays — zeros, ones, arange, linspace

▸ Atributos — shape, ndim, dtype, size, T

▸ Indexación avanzada — booleana y fancy indexing

▸ Operaciones vectorizadas y ufuncs

▸ Estadística — mean, std, percentiles, corrcoef

▸ Manipulación — reshape, flatten, vstack, hstack

▸ Álgebra lineal — solve, inv, eig, svd, norm

▸ Broadcasting — reglas y ejemplos visuales

▸ Arrays aleatorios — API clásica y default_rng

▸ Entrada/Salida — .npy, .npz, CSV

▸ Rendimiento — vectorización, copy vs view, dtype


📎https://www.linkedin.com/feed/update/urn:li:activity:7488297341653958656?utm_source=share&utm_medium=member_desktop&rcm=ACoAAB2v4FUBJ-OFSi3fsZmOqhtJf-BXPixworY

Día 30 — Cierre: un mes completo de Python, de cero a backend funcional

Treinta días después de empezar con el concepto más básico —qué es una variable—, el recorrido ha cubierto fundamentos, estructuras de datos, programación orientada a objetos, manejo de errores, librerías de análisis de datos y desarrollo de APIs reales. Este último ejemplo combina varias de las herramientas vistas a lo largo del mes en un único script funcional.

Este es solo el punto de partida: los siguientes pasos naturales incluyen profundizar en frameworks como Django, aprender despliegue en la nube, o especializarse en una rama concreta como ciencia de datos, automatización o desarrollo backend.

Código de ejemplo:

import pandas as pd import json from fastapi import FastAPI from datetime import datetime app = FastAPI() @app.get("/informe") def generar_informe(): df = pd.read_csv("datos.csv") return { "fecha": datetime.now().isoformat(), "registros": len(df), "total": round(df["importe"].sum(), 2) } # Ejecutar con: uvicorn main:app --reload




martes, 28 de julio de 2026

Hoja resumen de Python

Hace unos años no sabía qué era una variable.

El camino no fue fácil, pero sí fue más sencillo cuando tuve los conceptos clave bien organizados.

He creado esta 𝗛𝗼𝗷𝗮 𝗱𝗲 𝗥𝗲𝗳𝗲𝗿𝗲𝗻𝗰𝗶𝗮 𝗥á𝗽𝗶𝗱𝗮 𝗱𝗲 𝗣𝘆𝘁𝗵𝗼𝗻 𝗴𝗿𝗮𝘁𝘂𝗶𝘁𝗮 —https://www.linkedin.com/feed/update/urn:li:activity:7487728949066792961?utm_source=share&utm_medium=member_desktop&rcm=ACoAAB2v4FUBJ-OFSi3fsZmOqhtJf-BXPixworY

📄 ¿Qué encontrarás dentro?

✅ Variables, tipos y operadores
✅ Estructuras de control y datos
✅ Funciones, clases y POO
✅ Decoradores y generadores
✅ Archivos, JSON y manejo de errores
✅ Librerías clave: Pandas, NumPy, FastAPI, SQLite
✅ Buenas prácticas y trucos Python

Todo con ejemplos de código reales. En español. Sin rodeos.

🎯 Va dirigido a:
→ Personas que quieren aprender Python desde cero
→ Profesionales que vienen de otras áreas (como yo, desde la contabilidad)
→ Desarrolladores que quieren tener todo a mano

📎 La tienes en el enlace anterior de esta publicación. Descárgala, guárdala y compártela con quien la necesite.

Y si quieres más contenido como este, sígueme aquí y en 👉 @josecodetech (YouTube • Instagram • Udemy)

Donde enseño que programar no es solo para ingenieros. Es para quien quiera aprender.

¿Eres de los que aprenden con hojas de referencia o prefieres ir directo al código? 👇

#Python #AprendePython #DataScience #ProgramaciónDesdeCero #DesarrolloSoftware #josecodetech #RecursosGratis #FastAPI #Pandas

Día 29 — Testing: asegurando que tu código funciona correctamente

Escribir tests automatizados es lo que diferencia el código de producción del código amateur. Un test verifica de forma automática que una función o clase se comporta exactamente como se espera, permitiendo detectar errores antes de que lleguen a producción.

El módulo unittest, incluido en la librería estándar, permite definir clases de pruebas con métodos que comienzan por test_, dentro de los cuales se usan aserciones como assertEqual() para comprobar que el resultado obtenido coincide con el esperado. La alternativa externa más popular es pytest, más concisa y con un ecosistema de extensiones muy amplio.

Código de ejemplo:

import unittest def suma(a, b): return a + b class TestSuma(unittest.TestCase): def test_numeros_positivos(self): self.assertEqual(suma(2, 3), 5) def test_numeros_negativos(self): self.assertEqual(suma(-1, -1), -2) if __name__ == "__main__": unittest.main()




lunes, 27 de julio de 2026

Día 28 — Generadores: procesando datos sin agotar la memoria

Un generador es una función especial que utiliza la palabra clave yield en lugar de return, lo que le permite producir valores uno a uno bajo demanda, en lugar de calcular y almacenar todos los resultados de golpe en memoria.

Esta característica los hace ideales para procesar archivos muy grandes, secuencias potencialmente infinitas o flujos de datos continuos, ya que el consumo de memoria se mantiene constante independientemente del volumen de datos procesados.

Código de ejemplo:

def fibonacci(): a, b = 0, 1 while True: yield a a, b = b, a + b generador = fibonacci() for _ in range(8): print(next(generador), end=" ") # 0 1 1 2 3 5 8 13 # Generator expression pares = (n for n in range(100) if n % 2 == 0)




domingo, 26 de julio de 2026

Día 27 — Web scraping: extrayendo datos de internet

El web scraping consiste en extraer información automáticamente de páginas web. Python destaca en esta tarea gracias a la combinación de dos librerías: requests, que descarga el contenido HTML de cualquier página, y BeautifulSoup, que permite recorrer y extraer elementos concretos de ese HTML de forma sencilla.

Es importante mencionar que antes de hacer scraping a cualquier sitio web conviene revisar su archivo robots.txt y sus términos de servicio, ya que no todas las páginas permiten la extracción automatizada de su contenido.

Código de ejemplo:

import requests from bs4 import BeautifulSoup url = "https://ejemplo.com" respuesta = requests.get(url) soup = BeautifulSoup(respuesta.text, "html.parser") titulos = soup.find_all("h2") for titulo in titulos: print(titulo.text.strip()) # Instalación: pip install requests beautifulsoup4




sábado, 25 de julio de 2026

Día 26 — Automatización real: combinando Pandas, JSON y fechas

Una de las aplicaciones más prácticas y demandadas de Python en el entorno profesional es la automatización de tareas administrativas repetitivas: generar informes, procesar facturas o consolidar datos de ventas. Este ejemplo combina varias herramientas vistas anteriormente en un caso de uso real y aplicable.

Automatizar este tipo de procesos no solo ahorra tiempo, sino que también elimina errores humanos derivados de la manipulación manual de datos en hojas de cálculo, especialmente cuando el volumen de información crece.

Código de ejemplo:

import pandas as pd import json from datetime import datetime def analizar_ventas(archivo_csv): df = pd.read_csv(archivo_csv) return { "fecha": datetime.now().strftime("%d/%m/%Y"), "total": round(df["importe"].sum(), 2), "media": round(df["importe"].mean(), 2), "maximo": df["importe"].max() } resultado = analizar_ventas("ventas.csv") print(json.dumps(resultado, indent=2))


viernes, 24 de julio de 2026

Día 25 — SQLite: bases de datos sin instalar nada

SQLite es un sistema de base de datos ligero que viene incluido en la librería estándar de Python, sin necesidad de instalar ni configurar ningún servidor adicional. Es ideal para aplicaciones pequeñas, prototipos rápidos o para aprender los fundamentos de SQL desde un entorno controlado.

El módulo sqlite3 permite crear tablas, insertar registros, realizar consultas y gestionar transacciones usando sentencias SQL estándar, lo que hace que el conocimiento adquirido sea directamente transferible a otros motores de base de datos como MySQL o PostgreSQL.

Código de ejemplo:

import sqlite3 conexion = sqlite3.connect("clientes.db") cursor = conexion.cursor() cursor.execute(""" CREATE TABLE IF NOT EXISTS clientes ( id INTEGER PRIMARY KEY, nombre TEXT, email TEXT ) """) cursor.execute("INSERT INTO clientes VALUES (1, 'Ana', 'ana@mail.com')") conexion.commit() for fila in cursor.execute("SELECT * FROM clientes"): print(fila) conexion.close()




jueves, 23 de julio de 2026

Día 24 — FastAPI: tu primera API REST en pocos minutos

FastAPI es uno de los frameworks Python más demandados en el desarrollo backend actual, gracias a su rapidez de desarrollo, su excelente rendimiento y la generación automática de documentación interactiva. Crear una API REST funcional requiere muy pocas líneas de código.

Una de sus características más valoradas es el tipado de parámetros: al especificar el tipo de cada argumento (str, int, etc.), FastAPI valida automáticamente los datos recibidos y genera documentación accesible en la ruta /docs, sin necesidad de escribirla manualmente.

Código de ejemplo:

from fastapi import FastAPI app = FastAPI() @app.get("/") def inicio(): return {"mensaje": "¡Hola desde FastAPI!"} @app.get("/usuario/{nombre}") def usuario(nombre: str, edad: int = 0): return {"nombre": nombre, "edad": edad} # Ejecutar con: uvicorn main:app --reload




miércoles, 22 de julio de 2026

Día 23 — Decoradores: añadiendo superpoderes a tus funciones

Un decorador es una función especial que envuelve a otra función para modificar o ampliar su comportamiento sin necesidad de alterar su código original. Se aplican colocando el símbolo @ seguido del nombre del decorador justo encima de la definición de la función.

Los decoradores son una herramienta muy presente en frameworks profesionales: en Flask y FastAPI se usan para definir rutas (@app.get), y en Django para gestionar permisos o autenticación. Entender cómo funcionan internamente ayuda mucho a comprender el comportamiento de estas herramientas.

Código de ejemplo:

import time

def medir_tiempo(funcion):
    def wrapper(*args, **kwargs):
        inicio = time.time()
        resultado = funcion(*args, **kwargs)
        print(f"Tardó: {time.time() - inicio:.4f}s")
        return resultado
    return wrapper

@medir_tiempo
def calcular():
    return sum(range(1_000_000))

print(calcular())


martes, 21 de julio de 2026

Día 22 — NumPy: cálculo numérico ultrarrápido

NumPy es la librería fundamental para el cálculo numérico en Python, y la base sobre la que se construyen herramientas como Pandas, TensorFlow o scikit-learn. Su principal ventaja es la capacidad de realizar operaciones sobre arrays completos sin necesidad de bucles explícitos, lo que se traduce en un rendimiento muchísimo mayor que el de las listas tradicionales de Python.

Esta capacidad de "vectorizar" operaciones es esencial cuando se trabaja con grandes volúmenes de datos numéricos, como ocurre habitualmente en ciencia de datos, machine learning o procesamiento de señales.

Código de ejemplo:

import numpy as np

arr = np.array([1, 2, 3, 4, 5])

print(arr * 2)        # [2 4 6 8 10] - sin bucle
print(arr.mean())     # 3.0
print(arr.sum())      # 15

# Operaciones con matrices
matriz = np.array([[1, 2], [3, 4]])
print(np.dot(matriz, matriz))    # Producto matricial




lunes, 20 de julio de 2026

Día 21 — Pandas: análisis de datos de nivel profesional

Pandas es la librería de análisis de datos más utilizada en Python, y prácticamente un estándar en el sector. Su estructura principal, el DataFrame, funciona de forma similar a una hoja de cálculo: organiza los datos en filas y columnas, permitiendo filtrar, ordenar, agrupar y calcular estadísticas con muy pocas líneas de código.

Una de sus mayores ventajas es la capacidad de leer y escribir múltiples formatos de archivo (CSV, Excel, JSON, bases de datos SQL) de forma directa, lo que la convierte en la herramienta ideal para automatizar tareas de análisis que tradicionalmente se hacían manualmente en hojas de cálculo.

Código de ejemplo:

import pandas as pd datos = { "nombre": ["Ana", "Luis", "María"], "edad": [25, 30, 28], "salario": [2500, 3200, 2800] } df = pd.DataFrame(datos) print(df) print(df["salario"].mean()) # Media de la columna print(df[df["edad"] > 27]) # Filtrar filas