Jonaachar commited on
Commit
b02cacc
1 Parent(s): 149e6ae

Create app.py

Browse files
Files changed (1) hide show
  1. app.py +59 -0
app.py ADDED
@@ -0,0 +1,59 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import pandas as pd
2
+
3
+ # Definir los flujos de efectivo de cada proyecto
4
+ data = {
5
+ 'Proyecto 1': [100, 110, 120, 130, 140],
6
+ 'Proyecto 2': [100, 100, 100, 100, 200],
7
+ 'Proyecto 3': [110, 120, 110, 120, 110],
8
+ 'Proyecto 4': [150, 140, 130, 120, 110]
9
+ }
10
+
11
+ # Crear DataFrame con los flujos de efectivo
12
+ df = pd.DataFrame(data)
13
+
14
+ # Calcular el flujo de efectivo neto (FEN) para cada proyecto
15
+ def calcular_fen(flujos, tasa_descuento):
16
+ fen = 0
17
+ for i, flujo in enumerate(flujos):
18
+ fen += flujo / ((1 + tasa_descuento) ** (i + 1))
19
+ return fen
20
+
21
+ tasas_descuento = [0.1, 0.1, 0.1, 0.1, 0.1] # Suponiendo una tasa de descuento del 10% para todos los proyectos
22
+
23
+ df['FEN'] = df.apply(lambda row: calcular_fen(row.values, tasas_descuento), axis=1)
24
+
25
+ # Calcular la inversión inicial para cada proyecto
26
+ inversiones_iniciales = {
27
+ 'Proyecto 1': 0,
28
+ 'Proyecto 2': 0,
29
+ 'Proyecto 3': 0,
30
+ 'Proyecto 4': 0
31
+ }
32
+
33
+ # Elegir los proyectos óptimos para diferentes budgets
34
+ def elegir_proyectos_optimos(budget):
35
+ proyectos_optimos = []
36
+ df_temp = df.copy()
37
+ df_temp['Ranking'] = df_temp['FEN'] / df_temp.sum(axis=1)
38
+ df_temp = df_temp.sort_values(by='Ranking', ascending=False)
39
+ acumulado = 0
40
+ for index, row in df_temp.iterrows():
41
+ if acumulado + row[index] <= budget:
42
+ proyectos_optimos.append(index)
43
+ acumulado += row[index]
44
+ return proyectos_optimos
45
+
46
+ # a) Budget = 800
47
+ budget_a = 800
48
+ proyectos_a = elegir_proyectos_optimos(budget_a)
49
+ print(f"Proyectos óptimos para un budget de {budget_a}: {proyectos_a}")
50
+
51
+ # b) Budget = 1200
52
+ budget_b = 1200
53
+ proyectos_b = elegir_proyectos_optimos(budget_b)
54
+ print(f"Proyectos óptimos para un budget de {budget_b}: {proyectos_b}")
55
+
56
+ # c) Budget = 2400
57
+ budget_c = 2400
58
+ proyectos_c = elegir_proyectos_optimos(budget_c)
59
+ print(f"Proyectos óptimos para un budget de {budget_c}: {proyectos_c}")