Variables, Tipos de Datos y Operaciones Esenciales
Python como Lenguaje para DatosPython se convirtio en el lenguaje dominante de data science por una razon: es increiblemente legible y poderoso. En esta leccion vamos a repasar los fundamentos de Python enfocados en lo que necesitas para analisis de datos. Si ya sabes Python basico, esta leccion te va a servir como repaso rapido con enfoque en datos.
Variables en Python
Una variable es un nombre que apunta a un valor en la memoria. En Python no necesitas declarar el tipo, Python lo deduce automaticamente.
# Variables numericas
edad = 28
salario_mensual = 85000.50
tasa_inflacion = 0.042
# Variables de texto (strings)
nombre = "Maria Lopez"
ciudad = 'Buenos Aires'
pais = "Argentina"
# Variables booleanas
es_empleado = True
tiene_experiencia = False
# Variable None (sin valor)
fecha_renuncia = None
Convenciones de nombres
En data science seguimos estas convenciones:
# snake_case para variables y funciones (estandar Python)
total_ventas = 150000
promedio_edad = 32.5
# MAYUSCULAS para constantes
IVA = 0.21
TIPO_CAMBIO_USD = 1050.0
# Nombres descriptivos (NUNCA 'x', 'a', 'temp' en produccion)
ingresos_primer_trimestre = 450000
porcentaje_crecimiento_anual = 0.15
Tipos de Datos Fundamentales
Numeros: int y float
Los dos tipos numericos que mas vas a usar:
# Enteros (int) - para conteos, IDs, cantidades
cantidad_empleados = 150
anio = 2026
filas_dataset = 1_000_000 # Podes usar _ como separador visual
# Decimales (float) - para mediciones, porcentajes, dinero
temperatura = 23.5
porcentaje = 0.85
pi = 3.14159
# Verificar tipo
print(type(cantidad_empleados)) # <class 'int'>
print(type(temperatura)) # <class 'float'>
Operaciones aritmeticas
a = 10
b = 3
print(a + b) # 13 - Suma
print(a - b) # 7 - Resta
print(a * b) # 30 - Multiplicacion
print(a / b) # 3.3333... - Division (siempre float)
print(a // b) # 3 - Division entera
print(a % b) # 1 - Modulo (resto)
print(a ** b) # 1000 - Potencia
Ejemplo practico: Analisis financiero simple
# Datos de una empresa
ingresos_anuales = 5_400_000
costos_operativos = 3_200_000
impuestos_tasa = 0.30
# Calculos
utilidad_bruta = ingresos_anuales - costos_operativos
impuestos = utilidad_bruta * impuestos_tasa
utilidad_neta = utilidad_bruta - impuestos
margen_neto = utilidad_neta / ingresos_anuales
print(f"Utilidad bruta: ${utilidad_bruta:,.2f}")
print(f"Impuestos: ${impuestos:,.2f}")
print(f"Utilidad neta: ${utilidad_neta:,.2f}")
print(f"Margen neto: {margen_neto:.1%}")
Salida:
Utilidad bruta: $2,200,000.00
Impuestos: $660,000.00
Utilidad neta: $1,540,000.00
Margen neto: 28.5%
Strings (Texto)
En data science trabajas mucho con texto: nombres de columnas, categorias, valores de encuestas, etc.
nombre = "Carlos Rodriguez"
email = "[email protected]"
# Metodos utiles para limpieza de datos
print(nombre.upper()) # CARLOS RODRIGUEZ
print(nombre.lower()) # carlos rodriguez
print(nombre.title()) # Carlos Rodriguez
print(email.strip()) # Elimina espacios al inicio/final
print(nombre.replace("i", "y")) # Carlos Rodryguez
print(nombre.split()) # ['Carlos', 'Rodriguez']
# Verificaciones
print(email.endswith(".com")) # True
print(nombre.startswith("Car")) # True
print("123".isdigit()) # True
f-strings: Formateo profesional
producto = "Laptop"
precio = 899.99
cantidad = 45
# f-strings (Python 3.6+)
print(f"Producto: {producto}")
print(f"Precio: ${precio:.2f}")
print(f"Stock: {cantidad:,} unidades")
print(f"Total inventario: ${precio * cantidad:,.2f}")
# Formateo de numeros
ventas = 1234567.891
print(f"{ventas:,.2f}") # 1,234,567.89
print(f"{ventas:.2e}") # 1.23e+06 (notacion cientifica)
print(f"{0.8567:.1%}") # 85.7%
Listas: Tu Estructura de Datos Basica
Las listas son colecciones ordenadas y mutables. Son la base antes de pasar a Series de Pandas.
# Lista de ventas mensuales (en miles)
ventas = [120, 135, 98, 145, 167, 189, 201, 178, 156, 190, 210, 245]
# Acceso por indice (empieza en 0)
print(ventas[0]) # 120 (enero)
print(ventas[-1]) # 245 (diciembre)
print(ventas[3:6]) # [145, 167, 189] (abril a junio)
# Operaciones basicas
print(len(ventas)) # 12
print(sum(ventas)) # 2034
print(min(ventas)) # 98
print(max(ventas)) # 245
print(sum(ventas) / len(ventas)) # 169.5 (promedio)
# Agregar datos
ventas.append(260) # Agregar al final
ventas.insert(0, 110) # Insertar en posicion especifica
# Eliminar datos
ventas.remove(98) # Eliminar por valor
ultimo = ventas.pop() # Eliminar y retornar el ultimo
List comprehensions (MUY usadas en data science)
# Convertir ventas de miles a unidades
ventas_miles = [120, 135, 98, 145, 167]
ventas_unidades = [v * 1000 for v in ventas_miles]
print(ventas_unidades) # [120000, 135000, 98000, 145000, 167000]
# Filtrar: solo ventas mayores a 130
ventas_altas = [v for v in ventas_miles if v > 130]
print(ventas_altas) # [135, 145, 167]
# Transformar con condicion
clasificacion = ["alta" if v > 130 else "baja" for v in ventas_miles]
print(clasificacion) # ['baja', 'alta', 'baja', 'alta', 'alta']
# Generar secuencias
meses = [f"Mes {i}" for i in range(1, 13)]
print(meses) # ['Mes 1', 'Mes 2', ..., 'Mes 12']
Diccionarios: Datos Estructurados
Los diccionarios son pares clave-valor. Son la base conceptual de los DataFrames de Pandas.
# Un registro de empleado
empleado = {
"nombre": "Ana Garcia",
"edad": 32,
"departamento": "Marketing",
"salario": 75000,
"activo": True
}
# Acceso
print(empleado["nombre"]) # Ana Garcia
print(empleado.get("email", "N/A")) # N/A (no existe, retorna default)
# Modificar
empleado["salario"] = 80000
empleado["email"] = "[email protected]"
# Recorrer
for clave, valor in empleado.items():
print(f"{clave}: {valor}")
Lista de diccionarios = Mini dataset
# Esto es basicamente lo que Pandas hace internamente
ventas_equipo = [
{"vendedor": "Carlos", "mes": "Enero", "monto": 45000},
{"vendedor": "Maria", "mes": "Enero", "monto": 52000},
{"vendedor": "Luis", "mes": "Enero", "monto": 38000},
{"vendedor": "Carlos", "mes": "Febrero", "monto": 48000},
{"vendedor": "Maria", "mes": "Febrero", "monto": 55000},
{"vendedor": "Luis", "mes": "Febrero", "monto": 42000},
]
# Calcular total por vendedor
totales = {}
for venta in ventas_equipo:
nombre = venta["vendedor"]
totales[nombre] = totales.get(nombre, 0) + venta["monto"]
print(totales) # {'Carlos': 93000, 'Maria': 107000, 'Luis': 80000}
# Con Pandas esto se hace en UNA linea (lo vamos a ver pronto)
# df.groupby('vendedor')['monto'].sum()
Conversion de Tipos (Casting)
En datasets reales, los datos vienen en formatos incorrectos todo el tiempo.
# Datos "sucios" como vienen de un CSV
precio_str = "1,250.50"
cantidad_str = "45"
# Conversiones
precio = float(precio_str.replace(",", ""))
cantidad = int(cantidad_str)
print(f"Precio: {precio}, Cantidad: {cantidad}")
print(f"Total: ${precio * cantidad:,.2f}")
Video Recomendado
Python desde Cero para Data Science - Curso Completo
Ejercicio Practico
Crea un notebook llamado 02_variables.ipynb y resolve:
- Crea variables para representar datos de 5 productos de un supermercado (nombre, precio, stock, categoria)
- Calcula el valor total del inventario
- Usa list comprehensions para encontrar productos con stock menor a 50
- Crea un diccionario que agrupe productos por categoria
- Formatea todos los resultados con f-strings profesionales
Revisemos los puntos más importantes de esta lección antes de continuar.
Resumen
- Python usa tipado dinamico: no necesitas declarar tipos
- Los tipos clave son:
int,float,str,bool,list,dict - Las list comprehensions son fundamentales en data science
- Los diccionarios son la base conceptual de los DataFrames
- Los f-strings te dan formateo profesional de numeros y texto
- Comprendo el concepto principal y puedo explicarlo con mis palabras
- Entiendo cómo aplicarlo en mi situación específica
- Necesito repasar algunas partes antes de continuar
- Quiero ver más ejemplos prácticos del tema