Women Who Code – Medellín – Abril 2018 – Carga de datos usando Python Pandas

Les compartimos el hangout de Women Who Code Medellín de Abril, donde hablamos de carga de datos externos usando la librería Python de Pandas y realizando gráficos con ellos.

Con más detalle sobre graficación puedes ver el meetup de marzo.

Estamos en proceso de hacer meetups presenciales en la ciudad de Bogotá, les estaremos avisando.

Advertisements

Operaciones básicas con Python y Numpy

Una vez hemos instalado Python y un IDE básico, comencemos a operar.

Operaciones sencillas como suma, división, entre otros.  El tipo de una variable se define al momento de asignarle valor:

entero = 3 + 5
flotante = 5 / 13
#mostrar el resultado
print(entero)
#mostrar una operación
print(flotante + entero)
#imprimir tipo de variable
print(type(flotante))
#Asignar un string
texto = "Esto es el resultado de dos variables "
resultado = entero + flotante
#Imprimir textos y números
print(texto + str(resultado))

También podemos crear listas, los elementos pueden ser de diferente tipo.

sublista1 = [3, "pedro"]
#Hacer listas de listas
sublista2 = [5, "juan"]
lista = [sublista1, sublista2]
#O concatenar las listas
listaconcatenada = sublista1 + sublista2
#Las listas también pueden imprimirse
print(lista)
print(listaconcatenada)

Las listas no permiten hacer operaciones numéricas entre ellas, para ello necesitamos arreglos, que están dispuestos en la librería numpy.

#Importamos la librería y si lo deseamos le asignamos un nombre corto con "as"
import numpy as np
#Podemos crear listas comunes y llevarlas a arreglos
estatura = [1.55, 1.70, 1.80, 1.75, 1.60]
peso = [60.2, 67.5, 95.3, 50.3, 68.2]
np_estatura = np.array(estatura)
np_peso = np.array(peso)
#una vez son arreglos podemos hacer cálculos elemento a elemento
#**2 es elevar a la segunda potencia
bmi = np_peso / np_estatura**2
#Y mostrar el resultado, para este caso el índice de masa corporal
print(bmi)

Los arreglos solo permiten un único tipo de datos.  Para extraer un dato recurrimos al índice del arreglo, recordar que inicia en cero.

print(estatura[1])

O usar una condición para extraerlo

#Buscar los BMI menores a 18.5, que es considerado bajo peso
condicion = bmi < 18.5
#Se obtiene un arreglo que indica cuáles posiciones cumplen o no la condición
print(condicion)
#Se usa este arreglo para extraer los resultados deseados.
print(bmi[condicion])

Podemos crear arreglos de N dimensiones, pero teniendo en cuenta que solo tendrán un único tipo de datos.

np_2dimensiones = np.array([peso, estatura])
#El tipo es numpy.ndarray
print(type(np_2dimensiones))
#Contiene 2 filas y 5 columnas
print(np_2dimensiones)

Para especificar elementos individuales usamos los índices: [fila][columna]

#Una sola fila
np_2dimensiones[0]
#Un solo elemento
np_2dimensiones[1][2]

Para especificar un subrango: [rango_fila, rango_columna] y produciremos la intersección de los rangos.

  • El signo “:” significa incluir todo el rango de fila o columna
  • Al especificar un rango el fin especificado estará una posición más allá del fin deseado, así inicio:fin + 1
  • Si queremos desde un inicio hasta el fin, así inicio: 
#Una sola columna
np_2dimensiones[:,1:2]

numpy permite calcular algunas variables estadísticas, puedes explorar más en la documentación de Numpy.

#Media o promedio
np.mean(np_array)
#Mediana
np.median(np_array)
#Coeficiente de correlación
np.corrcoef(np_array1,np_array2)
#Desviación estándar
np.std(np_array)
#Suma
suma = np.sum(np_peso)
#Ordenar
arrayordenado = np.sort(np_peso)

También permite generar datos aleatorios, en este ejemplo generaremos datos redondeados a 2 cifras decimales, en una distribución normal, especificando la media, la desviación estándar y el número de muestras:

nro_cifras = 2
media_altura = 1.60
desv_std_altura = 0.20
muestras = 5000
media_peso = 60
desv_std_peso = 20
np_altura_aleatoria = np.round(np.random.normal(media_altura,desv_std_altura,muestras),nro_cifras)
np_peso_aleatorio = np.round(np.random.normal(media_peso,desv_std_peso,muestras),nro_cifras)
arreglo_altura_peso = np.column_stack((np_altura_aleatoria,np_peso_aleatorio))

np.column_stack crea un arreglo ubicando los datos generados en columnas.

Un poco sobre lo que comentamos antes en

 

 

Comenzando con Python – Instalación en OSX y paquetes

Para preparar obtener la última versión del lenguaje debe descargarse desde https://www.python.org/downloads/

El instalador se ejecuta, para el caso de OSX por tratarse de un paquete no firmado mostrará un error, luego se debe ingresarse a Preferencias del Sistema -> Seguridad y privacidad. En la opción: “Permitir apps descargadas de” verá una advertencia por el paquete recién ejecutado, se autoriza que se ejecute y se procede a instalar.

OSX tiene una versión preinstalada (2.7), la versión que se descarga quedará instalada solo para el usuario y no afecta la versión del sistema operativo.

Para instalar el manejador de paquetes pip, se descarga el script get-pip.py desde una fuente confiable como https://bootstrap.pypa.io/get-pip.py una vez descargado se ejecuta:

python3 get-pip.py

Esto instalará las dependencias necesarias, tenga en cuenta que python3 se refiere a la versión instalada, si usa python solamente en el comando intentará hacerlo sobre la versión del sistema operativo y generará errores de permisos.

Una vez instalado pip para instalar nuevos paquetes en python, por ejemplo Numpy, usar el manejador de paquetes de este modo para instalar el paquete básico de computación científica en Python:

pip3 install numpy

Notar nuevamente el uso del comando como pip3 para que el sistema operativo ubique apropiadamente la versión con la cual se trabaja.

Seleccione el entorno de desarrollo de su preferencia, uno IDE sencillo  para principiantes puede ser Thony, el cual puede descargarse de http://thonny.org

Para el trabajo con gráficas es importante instalar un paquete que pueda trazarlas.

pip3 install matplotlib

Otras librerías útiles para instalar:

  • Trabajo avanzado con fechas: dateutil
  • Uso de tablas de datos e importarlos desde csv: pandas
pip3 install python-dateutil
pip3 install pandas

Más sobre operaciones básicas con Python y uso de Numpy AQUÍ

Cursos en Ciberseguridad, Analítica de datos y Habilidades de Negociación TIC – SENA

Para Tecnólogos en TI,

Si está buscando ascender laboralmente y prepararse para el futuro TIC de Colombia, lo invitamos a participar en los nuevos cursos complementarios en alianza con la ANDI y la Fundación JP Morgan Chase:

– Habilidades de negociación TIC

– Seguridad digital

– Análisis de datos

Inicio
Primera cohorte Lunes 18 de Septiembre de 2017
Duración
180 horas cada curso
Horarios
Lunes a viernes
Jornada diurna: 6am – 12m o Jornada tarde: 12m – 6pm

Los cursos se dictarán presencialmente en el Centro de Gestión de Mercados, Logística y TI y la jornada diurna del curso de Análisis de datos se dictará en el Centro de Electricidad, Electrónica y Telecomunicaciones, ambos de la ciudad de Bogotá.

Preinscríbase en: Este link

Mayor información puede escribir a egresadoscgmlti@sena.edu.co

Recuerde que todos los cursos SENA son gratuitos.