0% encontró este documento útil (0 votos)
55 vistas

(Sesion03) Introduccion Python

El documento presenta un resumen del perfil profesional de David Allende Quintana. Es un ingeniero estadístico con experiencia en banca, telecomunicaciones y consultoría. Actualmente se desempeña como Lead Data Scientist en Tottus Corporativo y se dedica a la capacitación en analítica aplicada.

Cargado por

Snell Flores
Derechos de autor
© © All Rights Reserved
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
55 vistas

(Sesion03) Introduccion Python

El documento presenta un resumen del perfil profesional de David Allende Quintana. Es un ingeniero estadístico con experiencia en banca, telecomunicaciones y consultoría. Actualmente se desempeña como Lead Data Scientist en Tottus Corporativo y se dedica a la capacitación en analítica aplicada.

Cargado por

Snell Flores
Derechos de autor
© © All Rights Reserved
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 47

David Allende Quintana

Lead Data Scientist Tottus Corporativo

Capacitador de Analítica aplicada

Consultor Analítico

Experiencia profesional: Banca, Telecomunicaciones, Consultoría

Ingeniero Estadístico con especialización en Inteligencia de Negocios

Educación Ejecutiva
UTEC
Reglas

1 pausa activa

Mantener silenciado al micrófono de todos

Las preguntas se realizan por el chat / en caso sea necesario se


habilita el micrófono

Educación Ejecutiva
UTEC
Objetivos

Introducción a Python y Google Colab.

Comandos básicos de Python e instalación de funciones.

Introducción a Numpy

Introducción a Pandas

Educación Ejecutiva
UTEC
INTRODUCCIÓN A
PYTHON Y GOOGLE
COLAB

Educación Ejecutiva
UTEC
PYTHON

• Es un lenguaje de programación interpretado ¡Bye compilador!

• Posee un tipado dinámico, es decir no requiere que se declare el tipo de dato de cada variable creada y además puede
cambiar conforme se le vaya asignando valores.

• Recomendado para aprender a programar, sintaxis muy sencilla y legible (como si estuviéramos hablándole al ordenador).
HISTORIA DE PYTHON
PYTHON EN EL MUNDO EMPRESARIAL
BENEFICIOS Y CONSIDERACIONES DE PYTHON

• Es gratuito.

• Cuenta con soporte de la comunidad


académica a nivel mundial.

• Tiene actualización constante

• Es multiplataforma.

• Distingue mayúsculas de minúsculas.

• El # sirve para comentar.

• El nombre de un objeto no puede empezar


con un número.

• Las líneas de código se separan por enter.


PYTHON Y GOOGLE COLAB
TALLERES PRÁCTICOS
ELEMENTOS BÁSICOS EN PYTHON
Objetos: Notebook: Librería:

Las entidades que Python crea y Contiene los códigos que uno ingresa Funcionalidades creadas en Python
manipula, un objeto puede ser creado para realizar análisis o manipulación para realizar múltiples tareas.
por “=“. de datos en Python. Tienen la
extensión *.ipynb
COMANDOS BÁSICOS EN PYTHON
Asignación a objetos con operaciones matemáticas básicas

3.6 * 100

tc = 3.6*100

Verificamos las versiones de las librerías instaladas

import sys

print('Python version:', sys.version)

import IPython

print('IPython:', IPython.__version__)

import numpy

print('numpy:', numpy.__version__)

import pandas

print('pandas:', pandas.__version__)
COMANDOS BÁSICOS EN PYTHON
Asignación a objetos con caracteres

palabra = "Python“

palabra[0]

palabra[3]

palabra[-1]

palabra[2:]

len(palabra)

Listas

numeros = [1,2,3,4]

datos = [4,"Una cadena",-15,3.14,"Otra cadena"]

letras = ['a','b','c','d','e','f']

pares = [0,2,4,5,8,10]
COMANDOS BÁSICOS EN PYTHON
Operaciones con listas

datos[2:]

datos[-2:]

pares.append(12)

letras[:3] = ['A','B','C']

Letras

letras[:3] = []

Listas de listas

numeros = [1,2,3,4]

datos = [4,"Una cadena",-15,3.14,"Otra cadena"]

letras = ['a','b','c','d','e','f']

pares = [0,2,4,5,8,10]
COMANDOS BÁSICOS EN PYTHON
Operaciones con lista de listas

a = [1,2,3]

b = [4,5,6]

c = [7,8,9]

r = [a,b,c]

r[0]

r[-1]

r[2][2]
Tratamiento de Datos

Almacena «Click Stream Data»


Antes de analizar es necesario:
 Extraer la data
 Limpiar la data
ARREGLOS CON NUMPY

 Array es una matriz unidimensional.


 En Python la estructura de datos por defecto son las listas. Sin embargo, las listas no soportan operaciones
matemáticas avanzadas, no está optimizado para hacerlo.
 NumPy = Paquete de Python creado por Travis Oliphant con propósitos científicos.
 Array en NumPy consume menos memoria y por ende es más rápido que una lista de Python.

Para la creación de un Array en Python

1.Necesitamos importar la librería:


import numpy as np
2.Creamos el array en Python:
n_array = np.array([[0, 1, 2, 3],[4, 5, 6, 7],[8, 9, 10, 11]])
ARREGLOS CON NUMPY

Un Array en Python tiene los siguientes atributos:

 ndim: nos da el número de dimensiones del array.


n_array.ndim
 shape: nos da el tamaño de cada dimensión.
n_array.shape
 size: nos da el número de elementos.
n_array.size
 dtype: nos da el tipo de los datos en el array.
n_array.dtype.name
OPERACIONES MATEMÁTICAS CON NUMPY

 Restas de arrays.
a = np.array( [11, 12, 13, 14])
b = np.array( [ 1, 2, 3, 4])
c=a-b
c
 Potencia de arrays.
b**2
 Funciones sobre los arrays.
np.cos(b)
 Multiplicación de matrices
A1 = np.array([[1, 1],[0, 1]]) / A2 = np.array([[2, 0],[3, 4]])
A1*A2
np.dot(A1,A2)
OPERACIONES CON NUMPY

Si deseamos seleccionar un elemento en particular de un array:

 Seleccionamos la fila 1 y la columna 2.


n_array[0,1]
 Seleccionamos la fila 1 y las 3 primeras columnas.
n_array[ 0 , 0:3 ]
 Seleccionamos la fila 1 y todas las columnas.
n_array[ 0 , : ]
 Seleccionamos todas las filas y la columna 2.
n_array[ : , 1 ]
OPERACIONES CON NUMPY

Podemos modificar las dimensiones de un array una vez creado

 Modificamos la dimensionalidad de un array llevándolo de dimensión 1xN.


n_array.ravel()
 Modificamos la dimensionalidad del array llevándola a 6 filas x 2 columnas.
n_array.shape = (6,2)
 Transpuesta de un array.
n_array.transpose()
ANÁLISIS DE DATOS CON PANDAS

 Desarrollado por Wes Mckinny cuando trabajaba en AQR Capital Management. Deseaba una herramienta lo suficientemente flexible
para hacer análisis cuantitativos en datos financieros. Más adelante se le unió Chang She a seguir desarrollando el paquete.

 La librería Pandas desarrollada para el análisis. Fue desarrollada en NumPy.

 La librería Pandas trae la riqueza de R al mundo de Python. Tiene eficiente estructuras de datos para procesar los datos, unir datos y
leerlos de varias fuentes.

 Las estructuras de Pandas:


Series
DataFrame
Panel
SERIES
Las series son un array de una dimensión, pueden almacenar cualquier tipo de
datos como valores discretos, continuos, cadenas y objetos Python.

 Importar la librería Pandas desde Python.


import pandas as pd
 Creación de una serie a partir de 5 números aleatorios.
pd.Series(np.random.randn(5))
pd.Series(np.random.randn(5), index=['a', 'b', 'c', 'd', 'e'])
DATA FRAMES

Es una estructura de datos de 2 dimensiones de distinto tipos de datos, un data frame puede venir de las siguientes
estructuras de datos:
NumPy Array, Listas, Diccionarios, Series, 2D NumPy Array.

 Data Frames que provienen de diccionarios de series.


d = {'c1': pd.Series(['A', 'B', 'C']),'c2': pd.Series([1, 2., 3., 4.])}
df = pd.DataFrame(d)

 Data Frames que provienen de diccionarios de listas.


d = {'c1': ['A', 'B', 'C', 'D'],'c2': [1, 2.0, 3.0, 4.0]}
df = pd.DataFrame(d)
PANEL

Es una estructura de datos de 3 dimensiones.


 Data Frames que provienen de diccionarios de series.
d = {'Item1': pd.DataFrame(np.random.randn(4, 3)),
'Item2': pd.DataFrame(np.random.randn(4, 2))}
pd.Panel(d)
IMPORTAR Y EXPORTAR DATOS

Los datos pueden estar de varias formas: csv, TSV, bases de datos, etc.
Vamos a importar datos de estudiantes.
IMPORTAR Y EXPORTAR DATOS

 Importar datos en formato csv.


d = pd.read_csv('Data/students.csv')
 Leer los primeros registros.
d.head()
 Leer registros específicos de una variable
d[0:5][variable]
 Exportar datos de un data frame a un csv
d = {'c1': pd.Series(['A', 'B', 'C']),'c2': pd.Series([1, 2., 3., 4.])}
df = pd.DataFrame(d)
df.to_csv('sample_data.csv')
IMPORTAR Y EXPORTAR DATOS

 Importar datos en formato xls.


d = pd.read_excel('Data/students.xls')
 Leer los primeros registros.
d.head()
 Leer registros específicos de una variable
d[0:5][‘variable’]
 Exportar datos de un data frame a un xls
df.to_excel('sample_data.xls')
IMPORTAR Y EXPORTAR DATOS

 Importar el paquete JSON.


import json
json_data = open('Data/students.json')
data = json.load(json_data)
json_data.close()
VALORES PERDIDOS

 Identificar a los valores perdidos.


d[‘variable’].isnull()
 Identificar a los valores no perdidos.
d[‘variable’].notnull()
 Cuantificar a los valores perdidos.
d[‘variable’].isnull().value_counts()
 Cuantificar a los valores no perdidos.
d[‘variable’].notnull().value_counts()
 Eliminar a los valores perdidos.
d = d[‘variable’].dropna()
 Eliminar a cualquier registro que tenga por lo menos un campo con valor perdido.
d = d.dropna(how='any')
VALORES PERDIDOS

 Crear un data frame en base a números aleatorios.


df = pd.DataFrame(np.random.randn(5, 3), index=['a0', 'a10','a20', 'a30', 'a40'],
columns=['X', 'Y', 'Z'])
 Crear índices adicionales al data frame.
df2 = df.reindex(['a0', 'a1', 'a10', 'a11', 'a20', 'a21','a30', 'a31', 'a40', 'a41'])
 Completar los valores perdidos con ceros.
df2.fillna(0)
 Completar los valores perdidos con el método “forward propagation”. Se va completar con
el valor previo al nulo.
df2.fillna(method='pad')
 Completar los valores perdidos con el promedio de la variable.
df2.fillna(df2.mean())
OPERACIONES CON CADENAS
 Importar un archivo csv y leer los 5 primeros casos.
df = pd.read_csv('data/students.csv')
df['AREA NAME'][0:5]
 Filtrar casos específicos.
df[df['GRADE LEVEL'] == 'ELEMENTARY']
 Convertir a mayúsculas.
df['AREA NAME'][0:5].str.upper()
 Convertir a minúsculas.
df['AREA NAME'][0:5].str.lower()
 Cuantificar la cantidad de caracteres de cada elemento.
df['AREA NAME'][0:5].str.len()
 Cortar en base a espacios en blanco.
df['AREA NAME'][0:5].str.split(' ')
 Reemplazar
df['AREA NAME'][0:5].str.replace('DISTRICT$', 'DIST')
CONCATENAR DATOS

 Seleccionamos los 5 primeros registros de 2 campos.


d[['AREA NAME', 'COUNTY']][0:5]
 Partir los datos en dos grupos. Concatenarlos por posición.
p1 = d[['AREA NAME', 'COUNTY']][0:2]
p2 = d[['AREA NAME', 'COUNTY']][2:5]
pd.concat([p1,p2])
 Concatenar datos en base a una llave.
concatenated = pd.concat([p1,p2], keys = ['p1','p2'])
 Seleccionar la data agregada en base a una llave.
concatenated.ix['p1']
AGREGAR DATOS

 Seleccionamos un subconjunto de elementos y promediamos.


data = d[d['GRADE LEVEL'] == 'ELEMENTARY']
data['NO. OBESE'].mean()
 La suma total.
data['NO. OBESE'].sum()
 Valor máximo.
data['NO. OBESE'].max()
 Valor mínimo.
data['NO. OBESE'].min()
 Desviación Estándar.
data['NO. OBESE'].std()
 Conteo.
data = df[(d['GRADE LEVEL'] == 'ELEMENTARY') &(d['COUNTY'] == 'DELAWARE')]
data['COUNTY'].count()
CRUZAR DATOS
 Creamos un data frame.
grade_lookup = {'GRADE LEVEL': pd.Series(['ELEMENTARY','MIDDLE/HIGH', 'MISC']),
'LEVEL': pd.Series([1, 2, 3])}
grade_lookup2 = pd.DataFrame(grade_lookup)
 La tabla que usaremos como base es la de estudiantes.
df[['GRADE LEVEL']][0:5]
 Inner Join.
d_sub = df[0:5].join(grade_lookup2.set_index(['GRADE LEVEL']),
on=['GRADE LEVEL'], how='inner')
CRUZAR DATOS

 Left Join.
d_sub = df[0:5].join(grade_lookup2.set_index(['GRADE LEVEL']),
on=['GRADE LEVEL'], how='left')

 Full Outer Join.


d_sub = df[0:5].join(grade_lookup2.set_index(['GRADE LEVEL']),
on=['GRADE LEVEL'], how='outer')
AGRUPAR DATOS

df['NO. OBESE'].groupby(d['GRADE LEVEL']).sum()


d['NO. OBESE'].groupby(d['GRADE LEVEL']).mean()
d['NO. OBESE'].groupby(d['GRADE LEVEL']).std()
RECURSOS
ADICIONALES

También podría gustarte