Fuente: Gemini
¡Absolutamente! Python es una de las herramientas más potentes para la gestión de proyectos (Project Management) y el Análisis de Costo-Beneficio (ACB) debido a su capacidad para manejar grandes volúmenes de datos, automatizar cálculos complejos y generar visualizaciones claras para la toma de decisiones.
Aquí te presento cómo se aplica en cada área con ejemplos resueltos.
1. Análisis de Costo-Beneficio (ACB)
El ACB busca determinar si una inversión es rentable comparando el Valor Presente Neto (VAN o NPV) y la Tasa Interna de Retorno (TIR o IRR).
Ejemplo Resuelto: Evaluación de un Proyecto de Software
Supongamos que una empresa quiere invertir 100,000 USD en un nuevo sistema. Se espera que ahorre 30,000 USD anuales durante 5 años. La tasa de descuento es del 10%.
>>import numpy_financial as npf
>># Datos del proyecto
>>inversion_inicial = -100000
>>flujos_efectivo = [30000, 30000, 30000, 30000, 30000]
>>tasa_descuento = 0.10
>># Unir la inversión con los flujos
>>caja = [inversion_inicial] + flujos_efectivo
>># Cálculos
>>van = npf.npv(tasa_descuento, caja)
>>tir = npf.irr(caja)
>>print(f"Valor Presente Neto (VAN): ${van:,.2f}")
>>print(f"Tasa Interna de Retorno (TIR): {tir:.2%}")
>>if van > 0:
>> print("Resultado: El proyecto es financieramente viable.")
>>else:
>> print("Resultado: El proyecto no es viable.")
En google colab:
>>!pip install numpy-financial
>>>
Collecting numpy-financial
Downloading numpy_financial-1.0.0-py3-none-any.whl.metadata (2.2 kB)
Requirement already satisfied: numpy>=1.15 in /usr/local/lib/python3.12/dist-packages (from numpy-financial) (2.0.2)
Downloading numpy_financial-1.0.0-py3-none-any.whl (14 kB)
Installing collected packages: numpy-financial
Successfully installed numpy-financial-1.0.0
>> Python 1.
>>>
Valor Presente Neto (VAN): $13,723.60
Tasa Interna de Retorno (TIR): 15.24%
Resultado: El proyecto es financieramente viable.
2. Gestión de Proyectos: Método de la Ruta Crítica (CPM)
Python permite calcular fechas tempranas, tardías y la ruta crítica de un proyecto (las tareas que, si se retrasan, retrasan todo el proyecto).
Ejemplo Resuelto: Programación de Tareas
Utilizando la librería criticalpath, podemos definir dependencias:
>>from criticalpath import Node
>># Crear el proyecto
>>p = Node('Proyecto Construcción')
>># Añadir tareas (Nombre, duración)
>>a = p.add(Node('A: Cimientos', duration=5))
>>b = p.add(Node('B: Paredes', duration=10))
>>c = p.add(Node('C: Techo', duration=7))
>>d = p.add(Node('D: Instalación Eléctrica', duration=4))
>># Definir dependencias (B depende de A, C depende de B, etc.)
>>p.link(a, b).link(b, c)
>>p.link(b, d) # La electricidad puede empezar tras las paredes
>># Calcular ruta crítica
>>ruta_critica = p.get_critical_path()
>>duracion_total = p.get_duration()
>>print(f"Ruta Crítica: {[str(n) for n in ruta_critica]}")
>>print(f"Duración total del proyecto: {duracion_total} días")
>>!pip install criticalpath
>>>
Collecting criticalpath
Downloading criticalpath-0.1.5.tar.gz (10 kB)
Preparing metadata (setup.py) ... done
Building wheels for collected packages: criticalpath
Building wheel for criticalpath (setup.py) ... done
Created wheel for criticalpath: filename=criticalpath-0.1.5-py3-none-any.whl size=12028 sha256=e2e0fb8fd5509a1a61a276a5a281c5273b5b6d402634246079e1e69134070b0f
Stored in directory: /root/.cache/pip/wheels/d8/45/b4/18e42948498dfccab8c61f199bc0473d6045b18e1b170e69ef
Successfully built criticalpath
Installing collected packages: criticalpath
Successfully installed criticalpath-0.1.5
>>Python 2.
>>>
Ruta Crítica: ['A: Cimientos', 'B: Paredes', 'C: Techo']
Duración total del proyecto: 22 días
3. Visualización con Diagramas de Gantt
Aunque existen softwares como MS Project, con Python puedes generar diagramas dinámicos usando Plotly o Matplotlib.
Ejemplo de Visualización:
import plotly.express as px
import pandas as pd
df = pd.DataFrame([
dict(Task="Diseño", Start='2026-05-01', Finish='2026-05-15', Resource='Equipo A'),
dict(Task="Desarrollo", Start='2026-05-16', Finish='2026-06-20', Resource='Equipo B'),
dict(Task="Testing", Start='2026-06-21', Finish='2026-07-05', Resource='Equipo A')
])
fig = px.timeline(df, x_start="Start", x_end="Finish", y="Task", color="Resource")
fig.update_yaxes(autorange="reversed")
fig.show()
>>>
Beneficios de usar Python frente a Excel:
Repetibilidad: Puedes ejecutar el mismo análisis con nuevos datos en segundos.
Simulación de Monte Carlo: Puedes modelar la incertidumbre del proyecto generando miles de escenarios aleatorios para ver la probabilidad de éxito.
Integración: Puedes conectar tus scripts directamente a bases de datos de la empresa o APIs de finanzas.
No hay comentarios:
Publicar un comentario