Volver al curso

Data Science con Python: Análisis de Datos para Tu Carrera

leccion
2 / 23
intermediate
8 horas
Fundamentos de Python para Datos

Variables, Tipos de Datos y Operaciones Esenciales

Lectura
50 min~6 min lectura

Variables, Tipos de Datos y Operaciones Esenciales

Python como Lenguaje para Datos

Python 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:

  1. Crea variables para representar datos de 5 productos de un supermercado (nombre, precio, stock, categoria)
  2. Calcula el valor total del inventario
  3. Usa list comprehensions para encontrar productos con stock menor a 50
  4. Crea un diccionario que agrupe productos por categoria
  5. Formatea todos los resultados con f-strings profesionales

💡 Concepto Clave

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
🧠 Pon a prueba tu conocimiento
¿Cuál es el aspecto más importante que aprendiste en esta lección?
  • 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
✅ ¡Excelente! Continúa con la siguiente lección para profundizar más.