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Í

Women Who Code Medellín, Meetup presencial – Workshop Datos Abiertos – Noviembre 12 2016

women-who-code-noviembreEste mes de Noviembre en Women Who Code Medellín tendremos Meetup Presencial, para que puedas reunirtey participar en un taller sobre datos abiertos, el sábado 12 de Noviembre de 2016, de 1:00 pm a 5:00 pm en el ViveLab de RutaN Medellín.

Regístrate para asistir en https://www.meetup.com/Women-Who-Code-Medellin/events/235267313/

Estaremos hablando de Datos abiertos (OpenData). Trae tu laptop para que puedas participar en un taller donde crearemos aplicaciones web que consumen datos abiertos de gobierno y charlaremos sobre la convocatoria abierta de emprendimiento usando datos abiertos.

Que bueno será verlas de nuevo 🙂

Women Who Code, Meetup virtual 15 de Octubre de 2016

Este mes de Octubre en Women Who Code Medellín tendremos Meetup virtual, para que puedas conectarte desde donde quiera que estés por YouTube Live, el sábado 15 de Octubre a las 2:00 pm.

Regístrate para asistir en https://www.meetup.com/es-ES/Women-Who-Code-Medellin/events/234281652/

Estaremos hablando de OpenData. Les contaremos qué son los datos abiertos, mencionaremos algunas plataformas disponibles para consumir datos, los clientes de Socrata (también te diremos qué es Socrata) y sobre una convocatoria abierta de emprendimiento usado datos abiertos.

Aquí la versión grabada del streaming.

Hack.summit() 2016

Del 22 al 24 de febrero de 2016 se llevará  a cabo en línea el Hack Summit, el evento contará con presentaciones de importantes creadores de muchas de las tecnologías y lenguajes que usamos diariamente, e ingenieros de primer nivel de reconocidas compañías.

Puedes registrarte AQUÍ ya sea realizando una donación o compartiendo la información en tus redes sociales para que otros donadores se enteren. Todo lo recaudado por el evento irá a diversas organizaciones que apoyan el desarrollo de los programadores, entre ellas Women Who Code.

Durante los dos días previos podrás participar en un Hackaton internacional de aplicaciones web para apoyar a fundaciones sin ánimo de lucro, al cual podrás aplicar AQUÍ