0% encontró este documento útil (0 votos)
13 vistas1 página

Ejercicios de Python para Finanzas

Este documento presenta un trabajo práctico sobre el uso de Python para el análisis de datos temporales. Incluye ejercicios para crear fechas y horas usando datetime, comparar fechas de eventos financieros históricos, y trabajar con diccionarios de datos de elecciones.
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
13 vistas1 página

Ejercicios de Python para Finanzas

Este documento presenta un trabajo práctico sobre el uso de Python para el análisis de datos temporales. Incluye ejercicios para crear fechas y horas usando datetime, comparar fechas de eventos financieros históricos, y trabajar con diccionarios de datos de elecciones.
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

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

También podría gustarte