Introduccion A La Programacion y A Python
Introduccion A La Programacion y A Python
@geroalbornoz
Introducción a la Programación y a Python
Julio/Agosto de 2023
Fecha
Presentación
Contador Público, Especialización en Finanzas,
Corredor Inmobiliario/Mobiliario
Autodidacta en Programación y Análisis de Datos
Intereses:
● Análisis y Ciencia de Datos, BI
● Educación Financiera,
● Startups
● Crypto / Web3
Qué veremos hoy?
Clase 1
1. Introducción a la Programación:
a. Algoritmos,
b. funciones,
c. entornos,
d. tipos de lenguajes y python
e. intérpretes
2. Google Colab
3. Python es una Calculadora!
4. Python - Operadores
5. Python - Comentarios
Sincronización de Expectativas
“metodología de Trabajo”:
buscar en Google (y chatGPT y
similares ;-) )
Introducción a la Programación
Funciones
Al proceso de input,
proceso y output
lo podemos pensar
como
funciones
matemáticas
x = -3
funcion = x - 1
y = funcion
y = -4
x = -2
y= funcion
y = -3
Introducción a la Programación
Entornos
OK, si vamos a Programar…
¿Qué necesitamos?
Herramientas: Lenguaje,
Intérprete
De Alto Nivel: expresa los algoritmos de una manera adecuada a la capacidad cognitiva
humana (“entendibles por humanos”)
https://docs.python.org/3/faq/general.html#what-is-python
https://www.netflix.com/ar/title/80216752
Introducción a la Programación
Entornos
Entornos Cloud:
● Pre Armados (Ej, Google
Colab, o repl.it)
Ideal para principiantes y para
compartir, sin renegar por temas
de actualizaciones, etc
Presentación
https://colab.research.google.com/notebooks/intro.ipynb#scrollTo=5fCEDCU_qrC0
Google Colab
Cuadernos
Este intérprete nos permitirá generar archivos llamados Cuadernos de Python
(notebooks) con la extensión, .ipynb que pueden alojarse en google drive o
descargarse a nuestra compu para utilizar localmente.
Celdas
Estos Cuadernos están compuestos por “celdas” que son compartimentos
donde podemos:
● Escribir código o
● Generar un fragmentos de documento de tipo editor de texto
Google Colab
Ejecución de Celdas
La celdas de código las vamos escribiendo procurando agrupar variables, funciones,
importación de librerías, etc. según nuestro propio criterio.
Para que se ejecute el código contenido en cada celda, debemos hacer click en el
ícono Play a la izquierda de cada celda o Shift + Enter y esperar a que culmine
su ejecución.
Ver:
● Ejecutar todas las celdas: Menú Entorno de Ejecución → Ejecutar Todas
● Herramientas → Combinaciones de Teclas
Google Colab
Compartir Archivos
Los cuadernos que vayamos generando, los podemos compartir con la
función Compartir, ubicada arriba a la derecha.
Limitaciones
Utilización (en general) Ciencia de Datos, Scripts Simples Programas completos o scripts mas largos
Ejemplos Google Colab, Jupyter Notebook Visual Studio, Spyder, Pycharm, Vim
Google Colab
¿Vamos a programar?
https://colab.research.google.com/
Python es una Calculadora!
(y mucho más)
● Podemos realizar cálculos de todo tipo, desde aritmética hasta cálculo matricial.
https://docs.python.org/es/3/tutorial/introduction.html
Python es una Calculadora!
(y mucho más)
● Podemos realizar cálculos de todo tipo, desde aritmética hasta cálculo matricial.
https://docs.python.org/es/3/tutorial/introduction.html
Python es una Calculadora!
(y mucho más)
Operador Matemático Ejemplo a=10, b=20
+ Suma a + b = 30
- Resta a – b = -10
* Multiplicación a * b = 200
/ División b / a = 2.0
// División Entera b // a = 2
% Módulo b%a=0
https://docs.python.org/es/3/tutorial/introduction.html
Python es una Calculadora!
(y mucho más)
Los Paréntesis (tal y como ocurre en papel), se usan para agrupar:
a = 5 * (8 + 10)
c=a*b
https://docs.python.org/es/3/tutorial/introduction.html
Python es una Calculadora!
(y mucho más)
Los Paréntesis (tal y como ocurre en papel), se usan para agrupar:
a = 5 * (8 + 10)
c=a*b
https://docs.python.org/es/3/tutorial/introduction.html
¡Vamos al Colab!
Python - Operadores
Operador Nombre Ejemplo
Mundo”
!= No igual a != b
De Comparación: utilizados
> Mayor que a>b
para comparar 2 valores:
https://www.w3schools.com/python/python_operators.asp
Python - Operadores
Lógicos: utilizados para escribir condicionales
Operador Nombre Ejemplo
not Hace la Inversa. Retorna False si el resultado es True not (a > 1 and b == 0)
https://www.w3schools.com/python/python_operators.asp
Python - Comentarios
# → única línea
""" """ → multi línea
● Son textos para aclarar el código, que no son ejecutados por Python.
Ejemplos:
#esta división agrupa la tabla por edades, fue lo requerido por el cliente
""" Este es un script modelo que realiza un Análisis Exploratorio de Datos, basado en el
Manual de buenas prácticas del sector de Análisis de Datos"""
https://www.w3schools.com/python/python_operators.asp
Espacio de Preguntas!
Python
Repaso de clase
1. Introducción a la Programación:
a. Algoritmos,
b. funciones,
c. entornos,
d. tipos de lenguajes y python
e. intérpretes
2. Google Colab
3. Python es una Calculadora!
4. Python - Operadores
5. Python - Comentarios
Muchas gracias!!
Qué veremos hoy?
Clase 2
1. Variables
2. Funciones 1.0
3. Tipos de Datos
4. Estructuras de Datos
5. Listas
6. Diccionarios
7. Indexación
8. Manipulación de Strings
Python
Repaso de clase anterior
1. Introducción a la Programación:
a. Algoritmos,
b. funciones,
c. entornos,
d. tipos de lenguajes y python
e. intérpretes
2. Google Colab
3. Python es una Calculadora!
4. Python - Operadores
5. Python - Comentarios
Python
Variables
Repaso: Una Variable es un objeto que almacena datos.
En Python:
1. El valor o dato que almacena la variable, es variable.
2. En el momento de su creación, Python determina qué tipo de dato es.
3. Los nombres de las variables son case sensitive
4. Se definen con el signo igual =
https://www.w3schools.com/python/python_ref_functions.asp
Python
Funciones
Python tiene una enorme cantidad de funciones que puede realizar.
Estas realizan tareas o cómputos que precise nuestro programa.
https://www.w3schools.com/python/python_ref_functions.asp
Python
Funciones
La Función print() es una de las más utilizadas
Es la salida (impresión) en pantalla de los objetos que pasamos en los paréntesis.
Puede ser:
● texto, siempre entre comillas (string)
● variables
● cualquier otro objeto (que será convertido en formato string)
>>>Hola Mundo
https://www.w3schools.com/python/ref_func_print.asp#:~:text=The%20print()%20function%20prints,before%20written%20to%20the%20screen.
Python
Funciones
La Función range() es otra de las más utilizadas
Genera una secuencia de números enteros sobre los que podemos iterar.
>>>range(0, 10)
https://docs.python.org/es/3/tutorial/controlflow.html
Python
Funciones Otras Funciones built in:
Function Description
abs() Returns the absolute value of a number
Ejemplo:
x = str(3)
y = int(3)
z = float(3)
https://docs.python.org/es/3/tutorial/datastructures.html
Python
Tipos de Datos
El manejo de tipo de datos es un tema muy importante, porque cada tipo de dato
puede realizar operaciones diferentes
Categoría Tipo de Dato Ejemplo
Texto (**) String (str) “esto es 1 texto”
Secuencias (*) lista (list), tupla, conjunto, [1,2,3], (1,2,3), {1,2,3}, (0,9)
rango
“Es una forma particular de organizar datos en una computadora para que
puedan ser utilizados de manera eficiente…”
● Estructuras Nativas
● Datos estructurados (machete rápido)
○ Generadores (funciones)
○ Listas (ordenados, no-únicos, modificable)
○ Sets (no-ordenados, unicos, modificable)
○ Tuplas (ordenados, no-unicos, no-modificable)
○ Diccionarios (Estructuras clave-valor, cada elemento tiene una etiqueta)
https://es.wikipedia.org/wiki/Estructura_de_datos
Estructuras de Datos
Listas
Son un conjunto de valores separado por coma entre corchetes
Características:
1. Pueden contener valores de distinto tipo (incluso otras listas), pero generalmente los
valores son del mismo tipo
2. Son Mutables, es decir que se puede cambiar su contenido. Se utiliza el método
append() para agregar elementos
3. Se pueden
○ indexar y hacer slicing (segmentos) (Cuando hacemos slicing, estamos creando
una nueva lista)
○ Concatenar, utlizando el +
Se delimitan por llaves { } y, a su vez, los pares de datos por dos puntos :
{clave : valor}
Se los puede asimilar a un diccionario en papel. Las claves son las palabras
y el valor, es la definición de la palabra
Características:
Las claves deben ser únicas (igual que en los diccionarios de papel!)
Estructuras de Datos
Diccionarios
Características:
Ejemplo:
jugadores = {"Messi" : "La Pulga", "Batistuta" : "El Bati", "Maradona" : "El
Diego"}
Características:
● El primer elemento tiene el índice 0 (cero) y de
● El segundo elemento tiene el índice 1 y así sucesivamente
● Los índices son también Negativos, siendo -1 el último elemento, -2 el penúltimo
● Se accede mediante corchetes
P y t h o n
0 1 2 3 4 5 6
-6 -5 -4 -3 -2 -1
https://www.w3schools.com/python/python_operators.asp
Python
Manipulación de Strings P
0
y
1
t
2
h
3
o
4
n
5 6
-6 -5 -4 -3 -2 -1
Esquema General:
https://www.w3schools.com/python/python_operators.asp
¡Vamos al Colab!
Espacio de Preguntas!
Muchas gracias!!
Qué veremos hoy?
Clase 3
1. Funciones 2.0
2. Control de Flujo
a. Bucles
b. Condicionales
3. Errores
4. Librerías
5. Librerías datetime y requests
Python
Repaso de clase anterior
1. Variables
2. Funciones 1.0
3. Tipos de Datos
4. Estructuras de Datos
5. Listas
6. Diccionarios
7. Indexación
8. Manipulación de Strings
Python
Funciones 2.0
Repaso:
https://www.w3schools.com/python/python_ref_functions.asp
Python
Funciones 2.0
Sintáxis:
https://www.w3schools.com/python/ref_func_print.asp#:~:text=The%20print()%20function%20prints,before%20written%20to%20the%20screen.
https://www.w3schools.com/python/python_ref_functions.asp
Python
Funciones 2.0
def multiplica(x,y):
#Esta función multiplica los argumentos que se le pasen
print("Multiplicando...")
return x * y
multiplica(155,10)
multiplica("ja",10)
https://www.w3schools.com/python/ref_func_print.asp#:~:text=The%20print()%20function%20prints,before%20written%20to%20the%20screen.
Python
Funciones 2.0
lambda
ejemplo_lambda(32)
ejemplo2_lambda(32,10)
https://docs.python.org/es/3/tutorial/controlflow.html
https://www.youtube.com/watch?v=Rn0qfNy39n4
Python
Bucles (loops)
Porción de Código que se ejecuta repetitivamente (iterativamente)
https://www.googleadservices.com/pagead/aclk?sa=L&ai=DChcSEwiOnsHZg_zzAhWIlbMKHbGICukYABAAGg
Jxbg&ohost=www.google.com&cid=CAESQeD2bVNeHYJbX7WiIiglY4JWEOFh1KynVFNU19HShfHusv5FX0sw
wwUKaVB4Cn3UKCLzSbNEouqxrFmpyQJOz9-
d&sig=AOD64_0y56u4JMBvpqplMySQL6M5klxQLw&q&adurl&ved=2ahUKEwiEubTZg_zzAhUvqJUCHeg6D2Y
Python
Bucles (loops)
for i in lista:
print(i *10, "\npasando al próximo estilo de risa...\n")
https://docs.python.org/es/3/tutorial/controlflow.html
Python
Bucles (loops)
nombre = “Maria”
if nombre == “Maria”:
print (“Es María!!”)
Python Python - Condicionales
Condicionales if, elif, else
nombre = "geronimo"
Resumen:
if nombre == "Maria":
print ("Es María!!") if → necesario
elif nombre == "Jose": elif → opcional
print ("Es Jose!!")
else → opcional
elif nombre == "Juana":
print ("Es Juana!!")
else:
print("No es ninguna de las personas que estaba esperando :(")
Python
Errores
Hay que entablar amistad...
Ejemplo: Si una variable no está “definida” (no se le ha asignado un valor), al intentar usarla dará
un error:
date → fecha idealizada, supone que el calendario gregoriano actual siempre estuvo y
estará vigente
time → Un tiempo idealizado, independiente de cualquier día en particular. Supone que
cada día tiene exactamente 24* 60* 60 segundos
datetime → combinación de una fecha y una hora
timedelta → representa una duración, la diferencia entre dos fechas u horas.
Material adicional librería datetime español
datetime — Tipos básicos de fecha y hora — documentación de Python - 3.11.4
Python
Librería datetime import
datetime
Es una librería nativa de python.
Permite el manejo de fechas y horas, los cuales son tipos de datos muy importantes
from datetime import datetime
Posee 4 tipos de objetos principales que se pueden instanciar (llamar):
date → fecha idealizada, supone que el calendario gregoriano actual siempre estuvo y
estará vigente
time → Un tiempo idealizado, independiente de cualquier día en particular. Supone que
cada día tiene exactamente 24* 60* 60 segundos
datetime → combinación de una fecha y una hora
timedelta → representa una duración, la diferencia entre dos fechas u horas.
Material adicional librería datetime español
datetime — Tipos básicos de fecha y hora — documentación de Python - 3.11.4
¡Vamos al Colab!
Python
Librería Requests
1. Funciones 2.0
2. Control de Flujo
a. Bucles
b. Condicionales
3. Errores
4. Librerías
5. Librerías datetime y requests
¿Qué es una API?
Las API son mecanismos que permiten a dos componentes de software comunicarse
entre sí mediante un conjunto de definiciones y protocolos.
API significa “interfaz de programación de aplicaciones” (Application Programming
Interface):
➔Aplicación se refiere a cualquier software con una función distinta.
➔Interfaz son las definiciones de cómo se comunican entre sí mediante solicitudes y
respuestas. Esto se encuentra en la documentación de la API
APIs
APIs tipo REST
El flujo de datos se divide en 2 partes
principales:
Llamada a la API (Request/Call): estos son el
acceso y pedido de información realizadas
desde nuestra computadora (cliente)
Respuesta (Response): la computadora que
almacena la data (servidor) nos devuelve el
paquete de información solicitado
Este proceso es similar a conectarse a una web
APIs
APIs tipo REST
(Representational State Transfer, transferencia de estado
representacional)
REST es un conjunto de restricciones de arquitectura, no un
protocolo ni un estándar. Son el tipo de APIs más utilizadas
en el momento.
En estas APIs, el cliente (nuestra computadora) solicita datos
a endpoints de la API, donde se encuentran los recursos.
Cada recurso tiene un único endpoint.
Los endpoints son (simplemente) direcciones URL,
compuesto por una dirección base y el endpoint.
Programa de Formación 2022
Herramientas para análisis de datos
APIs
Swagger de las APIs MtR
Qué es un Swagger?
● Es un conjunto de herramientas de
software de código abierto para
diseñar, construir, documentar, y
utilizar APIs REST.
● incluye documentación automatizada,
generación de código, y generación de Centro de APIs
casos de prueba https://apihub.primary.com.ar/
Swagger de las APIs MtR
Integración para el back office bursátil con
métodos para administrar cuentas,
movimientos y consultar tenencias de los
comitentes.
https://api.sistemasesco.com/swagger/index.html?urls.primaryName=VisualBolsa%20v%209
https://remarkets.primary.ventures/#
● Es la combinación de algoritmos que tienen el propósito de crear máquinas que presenten las
mismas capacidades que el ser humano.
● Es una disciplina y un conjunto de capacidades cognoscitivas e intelectuales expresadas por
sistemas informáticos o combinaciones de algoritmos cuyo propósito es la creación de máquinas
que imiten la inteligencia humana para realizar tareas, y que pueden mejorar conforme recopilan
información.
● Se centra en la forma en la que los equipos informáticos pueden tomar decisiones en función de los
datos.” *
* Origen: Conversación con Bing, 24/5/2023(1) https://www.iberdrola.com/innovacion/que-es-inteligencia-
artificial#:~:text=La%20Inteligencia%20Artificial%20%28IA%29%20es%20la%20combinaci%C3%B3n%20de,en%20nuestro%20d%C3%ADa%20a%20d%C3%ADa%20a%20todas%20horas..
https://bing.com/search?q=que+es+inteligencia+artificial
(3) ¿Qué es la inteligencia artificial? | Microsoft Azure. https://azure.microsoft.com/es-es/resources/cloud-computing-dictionary/what-is-artificial-intelligence/ Con acceso 24/5/2023.
Herramientas de Inteligencia Artificial generativa
Modelos tipo chatGPT
Táctica 3: Solicite una salida con un formato estructurado. Táctica 4: Role prompting
Por ejemplo una tabla o formato JSON Actúa como un experto con muchos años de experiencia en escribir
canciones. Escribe una canción de la selección argentina ganando
Genera una tabla de tres títulos de películas inventadas junto la copa de la mano de Messi y Scaloni
con su año de lanzamiento, recaudación, actores y género. --------------------------------------------------------
Hacelo en formato tabla y también en formato JSON con las
Actúa como un productor de cine experimentado y detalla paso a
siguientes keys: año de lanzamiento, recaudación, actores y
paso lo necesario para que una película sea un éxito de taquilla.
género
Herramientas de Inteligencia Artificial generativa
Vamo´a promptear? 2.Dar al modelo tiempo para “pensar"
Táctica 1: Few-shots Táctica 2: especificar los pasos requeridos para completar la
tarea
Dar varios ejemplos de cómo se tiene que realizar la tarea
Realice las siguientes acciones:
Tu tarea es limitarse exclusivamente a clasificar si un
comentario es positivo o negativo, te voy a ayudar con 1 - Resuma el siguiente texto delimitado por comillas simples y
algunos ejemplos de guía: llaves con 1 oración.
"""Gran producto, 10/10: positivo. No funcionó muy bien: 2 - Traduzca el resumen al portugues.
negativo. Súper útil, vale la pena: positivo. ¡No funciona!
3 - Enumere los personajes del texto, en portugues
"""
Texto: “<inserte su texto aquí>”
1. Pandas 1.0:
a. Introducción a la librería más popular para análisis de datos
b. Tipos de Objetos: series y dataframe (df)
c. Creación de un dataframe
d. Carga de Archivos Locales y del Drive
e. Tipos de Datos
f. Funciones de Inspección
g. Acceso a los Valores del df
h. Manipulación de Datos: Faltantes, Reemplazos y Agrupamientos
Python
Repaso de clase anterior
Temas Puntuales Interesantes
1. APIs:
a. ¿Qué es una API?
b. Flujo de Datos
c. APIs tipo REST
d. Qué es un Swagger?
2. El JSON
3. Herramientas de IA generativa (chat GPT, BingChat, BARD, etc)
Pandas
https://pandas.pydata.org/
import pandas as pd
● Es un objeto de Pandas.
https://pandas.pydata.org/docs/user_guide/io.html
Pandas
Creación de un DataFrame : Mediante lectura de archivos
productos = pd.read_csv(“productos.csv”)
tasas = pd.read_csv("https://infra.datos.gob.ar/catalog/sspm/dataset/89/distribution/89.2/download/principales-tasas-interes-
diarias.csv")
dolar_3500 = “http://www.bcra.gov.ar/Pdfs/PublicacionesEstadisticas/com3500.xls”
Por defecto, Pandas le asigna un valor de cero en adelante. Podemos asignarle valores
usando el parámetro index en nuestro constructor:
df.info()
df.columna.dtype
https://pbpython.com/pandas_dtypes.html
Pandas
Tipos de Datos en Pandas
https://pbpython.com/pandas_dtypes.html
Pandas
Tipos de Datos en Pandas
Conversiones necesarias (casteo)
df.columna.astype(“float64”)
pd.to_numeric(df.columna) #object a numérico
pd.to_datetime() #object o número a fecha
https://pandas.pydata.org/docs/reference/api/pandas.to_datetime.html#pandas.to_datetime
https://pandas.pydata.org/docs/reference/api/pandas.to_numeric.html
Pandas
Renombrar
Columnas: df.rename(columns={“columa1”:”columnarenombre”})
índice: df.rename(index={0:”primero”, 1:”segundo”})
Ejemplos:
df.nombre #esta es una forma de acceder a 1 columna entera
df["nombre"] #esta es otra forma equivalente de acceso
df["nombre"][-10:-1]
Pandas
Acceso a los Valores
ej:
df.loc["primero"] #primera fila
Pandas
Acceso a los Valores
Basada en índice (index)
df.iloc[ ]
df.iloc[]
Inputs válidos:
● Un número entero, p. Ej. 5. ejemplos:
● Una lista o matriz de números df.iloc[:,0]
enteros [4, 3, 0]. df.iloc[[2,3,5,],2]
● Un slice de datos 1: 7. df.iloc[:, 3:7]
● Una matriz booleana. df.iloc[:2999, :]
● Una función (funciones lambda, df.iloc[-1]
más avanzado)
Pandas
Acceso a los Valores
Basada en índice (index)
df.iloc[ ]
df.iloc[]
Inputs válidos:
● Un número entero, p. Ej. 5. ejemplos:
● Una lista o matriz de números df.iloc[:,0]
enteros [4, 3, 0]. df.iloc[[2,3,5,],2]
● Un slice de datos 1: 7. df.iloc[:, 3:7]
● Una matriz booleana. df.iloc[:2999, :]
● Una función (funciones lambda, df.iloc[-1]
más avanzado)
Pandas
Acceso a los Valores
df[df.tasas_interes_pm == 38.0]
df.loc[df.tasas_interes_pm > 36]
isin retorna una serie booleana que muestra si tiene o no coincidencia con
los valores pasados.
Combinada con loc, filtra las filas que tienen coincidencia con los valores
pasados.
df.loc[df.tasas_interes_pm.isin(values=[36, 39])]
Pandas
Acceso a los Valores
Resumen
Operación Sintaxis Resultado
https://pandas.pydata.org/docs/user_guide/dsintro.html#basics-dataframe-sel-add-del
Pandas
Manipulación de Datos:
Faltantes, Reemplazos y Agrupamientos
Pandas
Datos Faltantes
https://pandas.pydata.org/docs/user_guide/missing_data.html#missing-data
Pandas
Datos Faltantes
Detectando Faltantes
https://pandas.pydata.org/docs/user_guide/missing_data.html#missing-data
Pandas
Datos Faltantes
Paso a Paso: Segundo...
Completando faltantes: fillna()
Podemos "completar" valores NA con datos que no son NA de 3 formas:
https://pandas.pydata.org/docs/user_guide/missing_data.html#missing-data
Pandas
Agrupamiento de Datos
https://pandas.pydata.org/docs/user_guide/groupby.html#groupby
Pandas
Agrupamiento de Datos
https://pandas.pydata.org/docs/user_guide/groupby.html#groupby
Pandas
Agrupamiento de Datos (avanzado)
Por más de 1 variable → Multi-indexes
1 función:
df.groupby(['columna1', 'columna2']).sum() #.min() . max() .apply()
https://pandas.pydata.org/docs/user_guide/groupby.html#groupby
https://pandas.pydata.org/pandas-docs/stable/user_guide/advanced.html
Espacio de Preguntas!
Muchas gracias!!
Qué veremos hoy?
Clase 6
1. Pandas 2.0:
a. Funciones de Resumen: Estadística Descriptiva
b. Agregado, Combinación y Reshaping de Data
c. Otros métodos útiles: rolling, ewm, shift, pivot, melt, sort_values, sort_index, multi-indices, cummax,
cummin, cumprod, cumsum, concat, set_index, drop, etc..
Pandas
Repaso de clase anterior
1. Pandas 1.0:
a. Introducción a la librería más popular para análisis de datos
b. Tipos de Objetos: series y dataframe (df)
c. Creación de un dataframe
d. Carga de Archivos Locales y del Drive
e. Tipos de Datos
f. Funciones de Inspección
g. Acceso a los Valores del df
h. Manipulación de Datos: Faltantes, Reemplazos y Agrupamientos
Pandas
Funciones de Resumen:
Estadística Descriptiva
Pandas
Funciones de Resumen
La estadística descriptiva es una disciplina que se encarga de recoger, almacenar,
ordenar, realizar tablas o gráficos y calcular parámetros básicos sobre el conjunto de
datos.
df.columna.mean()
df.columna.max()
df[[“columna1”, “columna2”]].median()
https://pandas.pydata.org/docs/getting_started/intro_tutorials/06_calculate_statistics.html#min-tut-06-stats
Pandas
Estadística descriptiva
Aplicar juntas Varias Funciones Estadísticas:
https://pandas.pydata.org/docs/getting_started/intro_tutorials/06_calculate_statistics.html#min-tut-06-stats
Pandas
Estadística descriptiva
Aplicar juntas Varias Funciones Estadísticas: Función agg
https://pandas.pydata.org/docs/getting_started/intro_tutorials/06_calculate_statistics.html#min-tut-06-stats
https://medium.com/@atanudan/kurtosis-skew-function-in-pandas-aa63d72e20de
Pandas
Estadística descriptiva
Aplicar a un Agrupamiento:
df.groupby(“columna”).mean()
https://pandas.pydata.org/docs/getting_started/intro_tutorials/06_calculate_statistics.html#min-tut-06-stats
Pandas
Estadística descriptiva
Conteo de Valores Agrupados: value_counts(), count() y size()
df[“columna”].value_counts()
df.groupby(“columna”).count()
https://pandas.pydata.org/docs/getting_started/intro_tutorials/06_calculate_statistics.html#min-tut-06-stats
Pandas
Function Description Function Description
cummax y Cumulative maximum and minimum cumsum, Cumulative sum and product
cummin cumprod
Pandas
https://pandas.pydata.org/docs/getting_started/intro_tutorials/05_add_columns.html#min-tut-05-columns
Pandas
Agregado de Data
En Pandas los valores de la nueva columna se calculan directamente.
Es el método más simple. Apila los elementos de diferentes objetos que tienen las
mismas columnas (ejemplo varios excel)
pd.concat([df1, df2])
Pandas
Reshaping de Data
df.pivot() Devuelve un df resumido por los valores únicos de determinada columna.
https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.pivot.html
Pandas
Reshaping de Data
df.melt(id_vars=) Hace el opuesto de pivot y devuelve un df de formato ancho, a largo
https://pandas.pydata.org/docs/reference/api/pandas.melt.html
Visualizaciones en Pandas
Pandas
Visualizaciones en Pandas
Se pueden hacer gráficos básicos y rápidos dentro de Pandas
https://pandas.pydata.org/docs/user_guide/visualization.html
Pandas
Visualizaciones en Pandas
df.plot(kind=”area”)
https://pandas.pydata.org/docs/user_guide/visualization.html
Pandas
Visualizaciones en Pandas
df.plot.kind() otros tipos de gráficos con el parámetro kind
https://pandas.pydata.org/docs/user_guide/visualization.html
Pandas
Visualizaciones en Pandas
df.hist() Los histogramas representan la distribución de la data.
Utilizando el método hist, cada columna tiene su histograma.
https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.hist.html
Pandas
Visualizaciones en Pandas
ej:
df.plot(subplots=True, figsize= (8,8))
¡Vamos al Colab!
Pandas
Visualizaciones en Pandas
ej:
df.plot(subplots=True, figsize= (8,8))
¡Vamos al Colab!
Pandas
Visualizaciones en Pandas
Categoría Tipo de gráfico Descripción
Tendencias Gráfico de líneas Muestra cómo cambia una variable numérica en el tiempo
Relación Diagrama de dispersión Muestra la relación entre dos variables numéricas en un plano cartesiano
Relación Diagrama de dispersión con línea de regresión Muestra la relación entre dos variables numéricas y ajusta una línea de regresión para modelar la relación
Relación Diagrama de dispersión categórico Muestra la relación entre una variable numérica y una variable categórica
Distribución Diagrama de caja y violín Muestra la distribución de una variable numérica agrupada por una variable categórica
Distribución Mapa de calor Muestra los valores de una matriz o un dataframe como colores en una cuadrícula
Espacio de Preguntas!
Muchas gracias!!
Qué veremos hoy?
Clase 7
1. Librerías de Visualización:
a. Seaborn
b. Plotly: gráficos dinámicos
2. Conexiones a APIs con Info de Mercado
Pandas
Repaso de clase anterior
1. Pandas 2.0:
a. Funciones de Resumen: Estadística Descriptiva
b. Agregado, Combinación y Reshaping de Data
c. Otros métodos útiles
Tipos de Gráficos
Seaborn
Visualizaciones en Seaborn
Los tipos de gráficos se pueden dividir en tres categorías amplias:
1. Registrarse: https://alpaca.markets/
1. Documentación: https://alpaca.markets/docs/
1. APP: https://app.alpaca.markets/paper/dashboard/overview
¡Vamos al Colab!
Conexiones a APIs de Mercado
ALPACA
1. Registrarse: https://www.alphavantage.co/
1. Documentación: https://www.alphavantage.co/documentation/
¡Vamos al Colab!
Muchas gracias!!
Qué veremos hoy?
Clase 8
1. Librería Numpy
2. Librerías de Visualización:
a. Matplotlib: la más completa del universo python
3. Presentación de notebooks
4. Conclusiones y Pasos a Seguir
Repaso de clase anterior
1. Librerías de Visualización:
a. Seaborn
b. Plotly: gráficos dinámicos
c. Matplotlib: la más completa del universo python
2. Conexiones a APIs con Info de Mercado
NumPy
Presentación
Es la librería de computación
numérica más utilizada.
Es una matriz de elementos (generalmente números), todos del mismo tipo (int o float).
En NumPy, las dimensiones se llaman ejes (axes).
Un arreglo consume menos memoria para almacenar datos y al ser del mismo tipo de datos
el código se optimiza aún más.
Un array de 1 dimensión/eje puede verse como una lista. Un array de n>1 dimensiones,
puede verse como una lista de listas, pero no son el mismo tipo de objeto.
1 dimensiones: 2 dimensiones:
[1,2, 3,] [ [1., 0., 0.],
[0., 1., 2.] ]
NumPy El Array
Formas de crear un array
Hay varias funciones: np.array(), np.zeros(), np.ones(), np.empty(), np.arange(), np.linspace()
Implementamos np.array() con una expresión simple
import numpy as np
a = np.array([1, 2, 3])
otra bastante utilizada es np.arange(), que hay que combinar con método reshape()
a = np.arange(25).reshape(5,5) #hacemos un array de 25 elementos de 5 x 5
Otra es np.linspace() similar a la anterior, devuelve una secuencia de números espaciados en una muestra.
ls = numpy.linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None)
¡Notebook ejercicios!
NumPy Operaciones Vectoriales
Podemos realizar:
Todo esto sin tener que hacer for loops y con optimización en el uso de recursos
¡Notebook ejercicios!
NumPy
El Array
Un vistazo a los arrays
de 2 dimensiones
Se crea una instancia de Generator con default_rng y llamarán a los diversos métodos en
ella
x
numpy.random.Generator.normal — NumPy v1.25 Manual
# Note that even in the OO-style, we use `.pyplot.figure` to create the Figure.
fig, ax = plt.subplots(figsize=(5, 2.7), layout='constrained')
Hay dos formas de usar Matplotlib: ax.plot(x, x, label='linear') # Plot some data on the axes.
● Crear explícitamente Figuras y Ejes, y llamar a ax.plot(x, x**2, label='quadratic') # Plot more data on the axes...
ax.plot(x, x**3, label='cubic') # ... and some more.
métodos sobre ellos (“orientado a objetos”). ax.set_xlabel('x label') # Add an x-label to the axes.
ax.set_ylabel('y label') # Add a y-label to the axes.
ax.set_title("Simple Plot") # Add a title to the axes.
ax.legend() # Add a legend.
● Confiar en pyplot para crear y administrar
implícitamente las Figuras y los Ejes, usando Implícita
x = np.linspace(0, 2, 100) # Sample data.
métodos de pyplot para graficar. plt.figure(figsize=(5, 2.7), layout='constrained')
plt.plot(x, x, label='linear') # Plot some data on the (implicit) axes.
plt.plot(x, x**2, label='quadratic') # etc.
plt.plot(x, x**3, label='cubic')
plt.xlabel('x label')
¡Vamos al Colab! plt.ylabel('y label')
plt.title("Simple Plot")
plt.legend()
Quick start guide — Matplotlib 3.7.2 documentation
MatPlotLib
Recursos
Ejemplos: Examples — Matplotlib 3.7.2 documentation
¡Notebook Integrador!
Conclusiones y Pasos a Seguir
Cómo Seguir? Proyectos, Práctica (diaria), Intereses, cometer errores
Qué hacer ante Dudas que Surjan a futuro? Google, grupos, tutoriales
(documentación y fuentes confiables), chatGPT, prueba y error, consulta a colegas
Recursos para continuar aprendiendo Python
Escrito:
SpanishLanguage - Python → documentación oficial
pamoroso/free-python-books: Python books free to read online or download → Libros Gratis (eng)
pandas: powerful Python data analysis toolkit → Docu completa: más de 3600 páginas…
https://drive.google.com/file/d/1XRTBBrNqFabKwYK9RDyiJVP32xpbkcHp/view?usp=sharing
Youtube:
Análisis de Datos en Python → Guillermo Izquierdo