Maestría en Finanzas | MFin UCEMA
Fecha: 02/05/2022
Profesor: Mariano Kruskevich
Estudiante: Emiliano Iparraguirre
Python Intermedio para Estadísticas
Trabajo Práctico N° 2
¡Practiquemos 1!
In [1]: # Ejercicio 1
# Creá un datetime para la fecha de hoy
# creá un datetime parab la fecha del crash del mercado en época del presidnete Kennedy (May 28, 1962)
# Creá un datetime para el Lunes negro en Wall Street ("Octubre 19, 1987")
In [10]: import datetime as dt
print("Fecha de hoy")
fecha_hoy = [Link]()
print(fecha_hoy)
print("--------------")
print("Crash de mercado Pres. JFK")
crash_JFK = [Link](1962, 5, 28)
print(crash_JFK)
print("--------------")
print("Lunes negro en WS")
lunes_negro = [Link](1987, 10, 19)
print(lunes_negro)
print("--------------")
Fecha de hoy
2022-05-01
--------------
Crash de mercado Pres. JFK
1962-05-28
--------------
Lunes negro en WS
1987-10-19
--------------
In [17]: # Ejercicio 2
# Construí un format string a partir de esta fecha del mini-crash de 1989 completando el código
print("Friday the 13th, Oct, 1989")
crash_1989 = "Friday the 13th, Oct, 1989"
crash_1989_format_str = "%A the %dth, %b, %Y"
mini_crash = [Link](crash_1989, crash_1989_format_str)
print(mini_crash)
print("--------------")
print("07/03/1990")
# Idem para la recesión de 1990: "07/03/1990"
reces_str = "07/03/90"
reces_format_str = "%d/%m/%y"
reces = [Link](reces_str, reces_format_str)
print(reces)
# Creá un datetime representando la recesión de 1990 llamado rec90 e imprimilo.
Friday the 13th, Oct, 1989
1989-10-13 00:00:00
--------------
07/03/1990
1990-03-07 00:00:00
In [23]: # Ejercicio 3
# Suponé que querés reprocesar una fecha en un nuevo formato por una necesidad de reporte
# La fecha original que te dan es
original = "Sep 16 1992"
# Definí el formato
formato = "%b %d %Y"
# Creá una fecha completando lo siguiente:
fecha = [Link](original,formato)
print(F"Fecha a reprocesar: {fecha}")
# Trabajá en el nuevo formato deseado: "Wednesday, September 16, 1992"
nuevo_formato = "%A, %b. %d, %Y"
# Creá un nuevo string basado en el nuevo formato
texto_nuevo = [Link](nuevo_formato)
print(F"Fecha reprocesada: {texto_nuevo}")
Fecha a reprocesar: 1992-09-16 00:00:00
Fecha reprocesada: Wednesday, Sep. 16, 1992
¡Practiquemos 2!
In [44]: # Ejercicio 4
# La burbuja [Link] explotó el 10 de marzo del 2000.
# Accedé por separado al año, mes y día
bur_puntocom = [Link](2000, 3, 10)
# Año
año = bur_puntocom.strftime("%Y")
# Mes
mes = bur_puntocom.strftime("%m")
# día
dia = bur_puntocom.strftime("%d")
print(f"Year: {año}, Month: {mes}, Day: {dia}") # f permite insertar variables evaluadas al momento de la corr
Year: 2000, Month: 03, Day: 10
In [54]: # Ejercicio 5
from datetime import timedelta
quiebra_lehman = [Link](2008, 9, 15)
morgan_stanley_deja_investment_banking = [Link](2008, 9, 22)
# comparando fechas en la crisis del 2008:
morgan_despues = morgan_stanley_deja_investment_banking > quiebra_lehman
print(f"It is {morgan_despues} that Morgan Stanley exited the investment banking business after Lehman went ban
# EL TARP (Programa de Recompra de Activos) fue aprobado el 3 de octubre de 2008 aunque muchos indican que seri
# comenzado a debatirse dos semanas antes de esa fecha. ¿Pudo haber incidido en el ánimo de los legisladores el
# del negocio de investment bankinng en simultáneo por parte de Goldman Sachs y Morgan Stanley?
print("\n")
TARP = [Link](2008, 10, 3)
catorceds_preTARP = TARP - timedelta(weeks = 2)
print(f"Dos semanas antes del TARP: {catorceds_preTARP}")
print("\n")
TARP_posterior = catorceds_preTARP > morgan_stanley_deja_investment_banking
print(f"It is {TARP_posterior} that TARP legislators may have actively initiated \
discussions after Goldman and Morgan exited the investment banking business")
It is True that Morgan Stanley exited the investment banking business after Lehman went banckrupt.
Dos semanas antes del TARP: 2008-09-19 00:00:00
It is False that TARP legislators may have actively initiated discussions after Goldman and Morgan exited the i
nvestment banking business
¡Practiquemos 3!
In [1]: # Ejercicio 6
# En las elecciones del 2021, a nivel nacional, se registraron los siguientes resultados: JxC 41.89%, FdT 33.03
# Creá un diccionario llamado resultado_elecciones2021 con estos datos. Imprimilo.
# Agregá el siguiente dato Otros 6%. Imprimilo
# Corregilo por favor. Llamalo otros partidos y asignale valor de 6.56%.Imprimilo
# Agregá un dato para Restantes que mostrará votos en blanco, anulados, etc. Imprimilo.
# Buscá el porcentaje de votos que obtuvo FdT
In [24]: print("Resultados de elecciones del 2021")
resultado_elecciones2021 = {"JxC":"41.89%", "FdT":"33.03%", "Pciales":"6.69%"}
print(resultado_elecciones2021)
print("--------------")
print("Agregar datos")
resultado_elecciones2021["Otros"] = "6%"
print(resultado_elecciones2021)
print("--------------")
print("Corregir valor")
resultado_elecciones2021["otros partidos"] = resultado_elecciones2021.pop("Otros")
resultado_elecciones2021["otros partidos"] = "6.56%"
print(resultado_elecciones2021)
print("--------------")
print("Agregar restantes")
resultado_elecciones2021["restantes"] = "11.83%"
print(resultado_elecciones2021)
print("--------------")
print("Porcentaje que obtuvo FdT")
resultado_fdt = resultado_elecciones2021.get("FdT")
print(resultado_fdt)
print("--------------")
Resultados de elecciones del 2021
{'JxC': '41.89%', 'FdT': '33.03%', 'Pciales': '6.69%'}
--------------
Agregar datos
{'JxC': '41.89%', 'FdT': '33.03%', 'Pciales': '6.69%', 'Otros': '6%'}
--------------
Corregir valor
{'JxC': '41.89%', 'FdT': '33.03%', 'Pciales': '6.69%', 'otros partidos': '6.56%'}
--------------
Agregar restantes
{'JxC': '41.89%', 'FdT': '33.03%', 'Pciales': '6.69%', 'otros partidos': '6.56%', 'restantes': '11.83%'}
--------------
Porcentaje que obtuvo FdT
33.03%
--------------
¡Practiquemos 4!
In [50]: # Ejercicio 7
# Suponete que trabajás en una AlyC. Querés recomendar a tus clientes la compra de una acción que acabás de ana
# Entonces, verificás dos cosas: a) que el cliente tenga acciones en tenencia (quiere decir que opera este acti
# b) que el cliente tenga saldo en caja disponible por más de $10.000
# Te proveen dos datos para que pruebes con un cliente: una variable acciones en cartera y un saldo de su cuent
acciones_en_cartera = True
saldo_comitente = 12156
if acciones_en_cartera == True and saldo_comitente > 10000:
cliente_target = ['SI']
else:
cliente_target = ['NO']
# Diseñá un test de cliente target para que le puedas ofrecer tu recomendación de compra. Llamá a la variabe: "
# No te olvides de chequear que el saldo de caja supera $10.000
print(f"El cliente es un target: {cliente_target}")
print("--------------")
# Ahora, le enviaste un email a tu cliente y esperabas que llenara unos datos impositivos y un campo en donde t
# si quería ejecutar el trade (marcaba 1 o True) o si no quería hacerlo (marcaba 0 o False). El resultado se pr
# y vemos que el cliente puede dejar el campo vacío.
print(f"Si el cliente desea operar")
formulario = [1]
if formulario == [] or formulario == [0]:
acción = ["No hacer nada"]
else:
acción = formulario
# Definí una variable denominada "acción" que haga lo que el cliente quiere o que defina "No hacer nada"
print(f"Hacer esto con el cliente: {acción}" )
print("--------------")
# Se provée la variable hoy_día_de_trading
hoy_día_de_trading = True
# Definí una variable que arroje un resultado para "operar" de acuerdo a una evaluación de "acción" y de "hoy_d
if formulario == [1] and hoy_día_de_trading == True:
operar = ['SI']
else:
operar = ['NO']
print(f"Hacer el trading para el cliente: {operar}")
print("--------------")
print("\n")
print(f"Si el cliente no desea operar o no expresa opinión")
formulario = []
if formulario == [] or formulario == [0]:
acción = ["No hacer nada"]
else:
acción = formulario
# Definí una variable denominada "acción" que haga lo que el cliente quiere o que defina "No hacer nada"
print(f"Hacer esto con el cliente: {acción}" )
print("--------------")
# Se provée la variable hoy_día_de_trading
hoy_día_de_trading = True
# Definí una variable que arroje un resultado para "operar" de acuerdo a una evaluación de "acción" y de "hoy_d
if formulario == [1] and hoy_día_de_trading == True:
operar = ['SI']
else:
operar = ['NO']
print(f"Hacer el trading para el cliente: {operar}")
print("--------------")
El cliente es un target: ['SI']
--------------
Si el cliente desea operar
Hacer esto con el cliente: [1]
--------------
Hacer el trading para el cliente: ['SI']
--------------
Si el cliente no desea operar o no expresa opinión
Hacer esto con el cliente: ['No hacer nada']
--------------
Hacer el trading para el cliente: ['NO']
--------------
In [13]: print('Solución alternativa - Uso de INPUT()')
acciones_en_cartera_dec = True
saldo_comitente_dec = 12156
formulario_dec = input('¿Deseas operar? 1 (SI) / 0 (NO). Respuesta: ')
hoy_día_de_trading = True
while formulario_dec != '1' and formulario_dec != '0':
formulario_dec = input('¿Deseas operar? Ingrese un valor del tipo: 1 (SI) / 0 (NO). Respuesta: ')
if formulario_dec == '1' and hoy_día_de_trading == True:
operar = ['SI']
else:
operar = ['NO']
print(f"Hacer el trading para el cliente: {operar}")
print("--------------")
Solución alternativa - Uso de INPUT()
¿Deseas operar? 1 (SI) / 0 (NO). Respuesta: 1
Hacer el trading para el cliente: ['SI']
--------------
¡Practiquemos 5!
In [12]: # Ejercicio 8
# Armá un condicional que asigne el valor en una variable "número" a uno de 3 grupos:
# grupo 1 = 0-500
# grupo 2 = 501-1000
# grupo 3 = superior a 1000
# Si el usuario ingresa un valor negativo debería aparecer un mensaje informándolo, no?
# Probá todos los extremos de grupos
In [12]: número = 501
if número >= 0 and número <= 500:
print(f"El número {número} pertenece al grupo 1")
elif número >= 501 and número <= 1000:
print(f"El número {número} pertenece al grupo 2")
elif número > 1000:
print(f"El número {número} pertenece al grupo 3")
else:
print("Por favor, ingrese un número entero no negativo")
El número 501 pertenece al grupo 2
¡Practiquemos 6!
In [23]: # Ejercicio 9:
# Suponé que te dan el siguiente listado de transacciones a efectuarle a un cliente
# También te dan el saldo de la cuenta comitente en efectivo
# Vos vas a operar, pero no querés que quede en negativo la cuenta. Así que construís un bucle
compras = [{'símbolo': 'AAPL', 'costo_total': 900}, {'símbolo': 'ORCL', 'costo_total': 300},
{'símbolo': 'CSCO', 'costo_total': 200}]
saldo = 1299
# Creá un loop que va a iterar sobre los ítems en compras
print(f"Saldo inicial: ${saldo}")
print("\n")
print("-------------------------")
for compra in compras:
print('Comprando ' + compra['símbolo'])
nuevo_saldo = saldo - compra['costo_total']
saldo = nuevo_saldo
print("-------------------------")
print("\n")
print(f"Saldo final: ${saldo}")
Saldo inicial: $1299
-------------------------
Comprando AAPL
Comprando ORCL
Comprando CSCO
-------------------------
Saldo final: $-101
In [25]: # Ejercicio 10:
compras = [{'símbolo': 'AAPL', 'costo_total': 900}, {'símbolo': 'ORCL', 'costo_total': 300},
{'símbolo': 'CSCO', 'costo_total': 200}]
saldo = 1299
# Armamos un nuevo bucle, chequeando si el saldo es negativo. En dicho caso, paramos la iteración
print(f"Saldo inicial: ${saldo}")
print("\n")
print("-------------------------")
for compra in compras:
print('Comprando ' + compra['símbolo'])
nuevo_saldo = saldo - compra['costo_total']
if nuevo_saldo < 0:
print('No seguimos comprando')
break
saldo = nuevo_saldo
print("-------------------------")
print("\n")
print(f"Saldo final: ${saldo}")
Saldo inicial: $1299
-------------------------
Comprando AAPL
Comprando ORCL
Comprando CSCO
No seguimos comprando
-------------------------
Saldo final: $99
¡Practiquemos 7!
In [26]: # Ejercicio 11
# Importá pandas as pd
# Armate un dataframe con las temperaturas máximas y mínimas previstas para los siguientes 5 días.
# Agregale también el "cielo" como variable y que las lecturas sean (algo así, no exactamente): despejado, nubl
# No te olvides de ponerle encabezado a las columnas para cada día del pronóstico.
# Si trabajaste bien, debiste haber agregado un argumento columns en la creación de tu dataframe.
# Agregale un argumento index = ["Cielo", "temp max", "temp min"]
# Imprimilo
In [29]: import pandas as pd
clima = [["Despejado", 16.5, 4.1], ["Despejado", 19.6, 6.3], ["Nublado", 20.0, 7.1], \
["Despejado", 22.5, 7.5], ["Nublado", 21.4, 8.9]]
clima_col = ["Cielo", "temp max", "temp min"]
clima_df = [Link](data = clima, columns= clima_col)
print("Datos")
print(clima)
print ("----------------------------------------------------------")
print("DataFrame")
print(clima_df)
print ("----------------------------------------------------------")
Datos
[['Despejado', 16.5, 4.1], ['Despejado', 19.6, 6.3], ['Nublado', 20.0, 7.1], ['Despejado', 22.5, 7.5], ['Nublad
o', 21.4, 8.9]]
----------------------------------------------------------
DataFrame
Cielo temp max temp min
0 Despejado 16.5 4.1
1 Despejado 19.6 6.3
2 Nublado 20.0 7.1
3 Despejado 22.5 7.5
4 Nublado 21.4 8.9
----------------------------------------------------------
In [30]: # Ejercicio 12
# Bajate a tu drive el ranking de la competencia Prodibur al 22 de noviembre de 2021 que está en Excel.
# ¿Sabías que esto es real y algunos de tus compañeros UCEMA están participando?
# Ahora cargalo aquí como un DataFrame (hint= usá la función pd.read_excel(), hint2= usá la extensión xls o xls
# Inspeccionalo y notá que, si el archivo es demasiado largo hacia la derecha, Python pone una "\" y lo continú
# Imprimí solo los 15 primeros puestos usando la función [Link](n=15)
# Decime quién de los alumnos en los primeros 15 lugares es de UCEMA y tiene chances de salir en el podio.
# Imprimí los últimos 10 lugares con la función [Link](). ¿Hay algún alumno de UCEMA? ¿Cuánta gente com
# La competencia cierra en una semana exactamente.
# Obviamente, si conocés a la gente que lucha por el podio, felicitalos y alentalos a dejar todo para llegar bi
In [38]: path = "C:/Users/[Link]/Desktop/MFin/02 Est Python/220422 Clase 1-2/05. [Link]"
prodibur = pd.read_excel(path)
print("DataFrame - Prodibur 2021")
print(prodibur)
print("--------------------------------------------------------")
print("\n")
print("Prodibur 2021 - Top 15")
[Link](n=15)
DataFrame - Prodibur 2021
Orden Nombre \
0 1 STACH MAURO IVAN
1 2 ANZORENA GUILLERMO
2 3 AZUAGA, DAIANA NICOL
3 4 MORGA FEDERICO JAVIER
4 5 OJEDA FACUNDO
.. ... ...
203 204 QUINTEROS ADRIAN
204 205 RODRIGUEZ MARA MILAGROS
205 206 LORENZO VICTORIA
206 207 HUAPAYA ARIEL
207 208 NUÑEZ, FELIPE
Establecimiento Valor Portfolio
0 Facultad de Cs. Es. - Universidad Nacional de ... 627732.85
1 UNIVERSIDAD CATOLICA DE CUYO - SEDE SAN LUIS 607074.62
2 Universidad del CEMA - Departamento de Finanzas 595902.71
3 Diplomatura en Mercados de Capitales - UCC 593134.11
4 Facultad de Cs. Es. Juridicas y Sociales - UNSL 588140.28
.. ... ...
203 Unviersidad del Salvador - Facultad de Cs. Es. 470340.82
204 Facultad de Cs. Es. y Administracion - FACEA -... 468503.70
205 Facultad de Cs. Es. - UBA 464411.25
206 Facultad de Cs. Es. - UBA 461539.10
207 Universidad del CEMA - Departamento de Finanzas 449837.44
[208 rows x 4 columns]
--------------------------------------------------------
Prodibur 2021 - Top 15
Out[38]: Orden Nombre Establecimiento Valor Portfolio
0 1 STACH MAURO IVAN Facultad de Cs. Es. - Universidad Nacional de ... 627732.85
1 2 ANZORENA GUILLERMO UNIVERSIDAD CATOLICA DE CUYO - SEDE SAN LUIS 607074.62
2 3 AZUAGA, DAIANA NICOL Universidad del CEMA - Departamento de Finanzas 595902.71
3 4 MORGA FEDERICO JAVIER Diplomatura en Mercados de Capitales - UCC 593134.11
4 5 OJEDA FACUNDO Facultad de Cs. Es. Juridicas y Sociales - UNSL 588140.28
5 6 CESCHIN GONZALO Facultad de Cs. Es. y Juridicas - UDA 587989.77
6 7 VILLAREAL OCTAVIO Facultad de Cs. Es. y Juridicas - UDA 586274.12
7 8 COLLADO JUAN MANUEL UNIVERSIDAD CATOLICA DE CUYO - SEDE SAN LUIS 579061.71
8 9 FILLASTRE BRENDA UNIVERSIDAD DE BELGRANO 577281.90
9 10 MUNCH VILLAVERDE VERÓNICA ALEJANDRA Facultad de Cs. Es. - Universidad Nacional de ... 577135.49
10 11 SANDOVAL, GASTON Universidad del CEMA - Departamento de Finanzas 570433.37
11 12 GAZAL MARIA PIA Diplomatura en Mercados de Capitales - UCC 570308.77
12 13 MATIAS GARBARINI Posgrado de Especializacion en Mercado de Capi... 569238.23
13 14 DIAZ JIMENA Facultad de Cs. Es. y Juridicas - UDA 567412.96
14 15 BRICEÑO LOPEZ MANUEL Universidad del CEMA - Departamento de Finanzas 567042.77
In [41]: print("El alumno AZUAGA, DAIANA NICOL es de la UCEMA y tiene chances de salir en el 3er puesto del podio")
print("--------------------------------------------------------")
El alumno AZUAGA, DAIANA NICOL es de la UCEMA y tiene chances de salir en el 3er puesto del podio
--------------------------------------------------------
In [42]: print("Prodibur 2021 - Últimos 10")
[Link](n=10)
Prodibur 2021 - Últimos 10
Out[42]: Orden Nombre Establecimiento Valor Portfolio
198 199 LOPEZ FRANCO Facultad de Cs. Es. - UBA 473097.78
199 200 SILVA FEDERICO Facultad de Administración - Economía y Negoci... 472463.56
200 201 PEREZ PAULA Facultad de Cs. Es. y Administracion - FACEA -... 471755.91
201 202 LOPEZ RAMIRO Facultad de Cs. Es. y Administracion - FACEA -... 471450.02
202 203 PÉREZ NOELIA MARILINA Facultad de Cs. Es. - Universidad Nacional de ... 471081.10
203 204 QUINTEROS ADRIAN Unviersidad del Salvador - Facultad de Cs. Es. 470340.82
204 205 RODRIGUEZ MARA MILAGROS Facultad de Cs. Es. y Administracion - FACEA -... 468503.70
205 206 LORENZO VICTORIA Facultad de Cs. Es. - UBA 464411.25
206 207 HUAPAYA ARIEL Facultad de Cs. Es. - UBA 461539.10
207 208 NUÑEZ, FELIPE Universidad del CEMA - Departamento de Finanzas 449837.44
In [54]: print("Hay un alumno de la UCEMA entre los últimos 10 puestos")
print("--------------------------------------------------------")
print(f"En total compiten {len([Link])} estudiantes")
print("--------------------------------------------------------")
Hay un alumno de la UCEMA entre los últimos 10 puestos
--------------------------------------------------------
En total compiten 208 estudiantes
--------------------------------------------------------
In [69]: # Ejercicio 13
# Ya conocés la base de datos de Prodibur 2021 porque la trabajaste en el ejercicio 12. Está en forma de DataFr
ranking = prodibur
print("Contame el nombre de quién está en la tercera posición del podio por favor")
# Tené en cuenta que los nombres de las filas, en este caso, corresponden con la posición
print([Link][2,'Nombre'])
print("------------------------------------")
print("Decime quién va en la punta del ranking usando también nombres")
print([Link][0,'Nombre'])
print("------------------------------------")
print("Volvé a usar nombres y decime, por favor, el nombre y la escuela de la persona en el tercer puesto")
print([Link][2, ['Nombre', 'Establecimiento']])
print("------------------------------------")
print("Decime, por favor, el monto de la cartera en su valuación más reciente para el primero y tercer puesto."
print([Link][[0,2], 'Valor Portfolio'])
print("------------------------------------")
print("Ahora te pido, por favor, todas las columnas del último en el ranking \
(acordate que con tail, en el ej 12, sabés su orden)")
# Usá slicing. Para todos, simplemente marcá :
print([Link][207, :])
print("------------------------------------")
print("Por último, en este ejercicio, dame el Valor de Portafolio para todos los alumnos")
# Usá slicing. Para todos, simplemente marcá :
print([Link][:, 'Valor Portfolio'])
Contame el nombre de quién está en la tercera posición del podio por favor
AZUAGA, DAIANA NICOL
------------------------------------
Decime quién va en la punta del ranking usando también nombres
STACH MAURO IVAN
------------------------------------
Volvé a usar nombres y decime, por favor, el nombre y la escuela de la persona en el tercer puesto
Nombre AZUAGA, DAIANA NICOL
Establecimiento Universidad del CEMA - Departamento de Finanzas
Name: 2, dtype: object
------------------------------------
Decime, por favor, el monto de la cartera en su valuación más reciente para el primero y tercer puesto.
0 627732.85
2 595902.71
Name: Valor Portfolio, dtype: float64
------------------------------------
Ahora te pido, por favor, todas las columnas del último en el ranking (acordate que con tail, en el ej 12, sabé
s su orden)
Orden 208
Nombre NUÑEZ, FELIPE
Establecimiento Universidad del CEMA - Departamento de Finanzas
Valor Portfolio 449837.44
Name: 207, dtype: object
------------------------------------
Por último, en este ejercicio, dame el Valor de Portafolio para todos los alumnos
0 627732.85
1 607074.62
2 595902.71
3 593134.11
4 588140.28
...
203 470340.82
204 468503.70
205 464411.25
206 461539.10
207 449837.44
Name: Valor Portfolio, Length: 208, dtype: float64
In [81]: # Ejercicio 14
# Usá indexing ahora para acceder.
print("Seleccioná fila 1, columna Valor Portfolio")
print([Link][0, 3])
print("-----------------------------")
print("Seleccioná última fila, columna Nombre")
print([Link][207, 1])
print("-----------------------------")
print("Escuelas de las posiciones 1 a 3, en podio hasta aquí")
print([Link][:3, 2])
print("-----------------------------")
print("Nombre y escuela del cuarto en el ranking")
print([Link][3, 1:3])
Seleccioná fila 1, columna Valor Portfolio
627732.85
-----------------------------
Seleccioná última fila, columna Nombre
NUÑEZ, FELIPE
-----------------------------
Escuelas de las posiciones 1 a 3, en podio hasta aquí
0 Facultad de Cs. Es. - Universidad Nacional de ...
1 UNIVERSIDAD CATOLICA DE CUYO - SEDE SAN LUIS
2 Universidad del CEMA - Departamento de Finanzas
Name: Establecimiento, dtype: object
-----------------------------
Nombre y escuela del cuarto en el ranking
Nombre MORGA FEDERICO JAVIER
Establecimiento Diplomatura en Mercados de Capitales - UCC
Name: 3, dtype: object
¡Practiquemos 9!
In [ ]: # Ejercicio 15.
# Calculá cuánto es el máximo del Valor Portfolio en el DataFrame de Prodibur 2021.
# Calculá la media y el desvío estándar de esa columna.
# ¿A cuántos desvíos estándares de la media está el máximo mencionado?
# Contá la cantidad de alumnos que exceden $500.000, que es el valor de inicio de la simulación hace casi 40 dí
# Hint: tal vez puedas intentar un bucle para cada elemento en la columna de "Valor Portfolio"
# ¿Cuánto es la media de este grupo que gana dinero?
# ¿Cuánto es la media del grupo que pierde dinero?
# ¿Es simétrica la pérdida y la ganancia en torno a la media total?
# ¿Podés arriesgar por qué ocurrió esto?
In [120… print("Máximo del Valor Portfolio")
VP_max = [Link][:,"Valor Portfolio"].max()
print(VP_max)
print("-----------------------------")
print("Media de Valor Portfolio")
VP_mean = round([Link][:,"Valor Portfolio"].mean(),2)
print(VP_mean)
print("Desvío Std de Valor Portfolio")
VP_devstd = round([Link][:,"Valor Portfolio"].std(),2)
print(VP_devstd)
print("-----------------------------")
print("¿A cuántos desvíos estándares de la media está el máximo mencionado?")
VP_contardesv = round((VP_max-VP_mean)/VP_devstd,2)
print(VP_contardesv)
print("-----------------------------")
print("\n")
print("Cantidad de alumnos que exceden $500.000")
prodibur_filt_exc= ranking['Valor Portfolio']>500000
prodibur_excede = ranking[prodibur_filt_exc]
prodibur_cantexc = prodibur_excede.loc[:,'Orden'].count()
print(prodibur_cantexc)
print("-----------------------------")
print("¿Cuánto es la media de este grupo que gana dinero?")
VP_gana_mean = round(prodibur_excede.loc[:,"Valor Portfolio"].mean(),2)
print(VP_gana_mean)
print("-----------------------------")
print("¿Cuánto es la media de este grupo que pierde dinero?")
prodibur_filt_pierde= ranking['Valor Portfolio']<500000
prodibur_pierde = ranking[prodibur_filt_pierde]
VP_pierde_mean = round(prodibur_pierde.loc[:,"Valor Portfolio"].mean(),2)
print(VP_pierde_mean)
print("-----------------------------")
print("¿Es simétrica la pérdida y la ganancia en torno a la media total?")
VP_gana_diff= round(VP_gana_mean - VP_mean,2)
print(F"Ganancia vs. media ${VP_gana_diff}")
VP_pierde_diff= round(VP_mean - VP_pierde_mean,2)
print(F"Pérdida vs. media ${VP_pierde_diff}")
print(F"Es {VP_gana_diff == VP_pierde_diff} que la pérdida y la ganancia son simétricas en torno a la media.")
print(f"La pérdida vs. la media representa {round(VP_pierde_diff/VP_gana_diff,2)} el valor de la ganancia vs. l
print("-----------------------------")
print("¿Podés arriesgar por qué ocurrió esto?")
print("Se podría decir con bastante certeza, de acuerdo a la evidencia mencionada, que los valores de los portf
no presentan una distribución normal en torno a la media.")
Máximo del Valor Portfolio
627732.85
-----------------------------
Media de Valor Portfolio
520124.34
Desvío Std de Valor Portfolio
30632.09
-----------------------------
¿A cuántos desvíos estándares de la media está el máximo mencionado?
3.51
-----------------------------
Cantidad de alumnos que exceden $500.000
148
-----------------------------
¿Cuánto es la media de este grupo que gana dinero?
533646.98
-----------------------------
¿Cuánto es la media de este grupo que pierde dinero?
486768.49
-----------------------------
¿Es simétrica la pérdida y la ganancia en torno a la media total?
Ganancia vs. media $13522.64
Pérdida vs. media $33355.85
Es False que la pérdida y la ganancia son simétricas en torno a la media.
La pérdida vs. la media representa 2.47 el valor de la ganancia vs. la media.
-----------------------------
¿Podés arriesgar por qué ocurrió esto?
Se podría decir con bastante certeza, de acuerdo a la evidencia mencionada, que los valores de los portfolios n
o presentan una distribución normal en torno a la media.
FIN Trabajo Práctico N° 2