Súmate al reto Platzi Data Challenge y comienza tu camino en el mundo de los datos. Tendrás un premio sorpresa según el nivel de cada reto.
Cada lunes durante el mes de agosto estaré publicando un reto semanal relacionado con el área de Data Engineer, es decir, desde la obtención hasta la limpieza de datos y como añadido, analítica para responder preguntas basadas en datos. En este blog, agregaré un poco de código explicativo el cual te será útil para resolver los retos, de tal forma que si te llegas a perder o bloquear mientras desarrollas la solución, solo debes regresar aquí.
¡Hola! Me llamo Osmandi, y soy parte del equipo de Data Science de Platzi. El motivo de este blog es proponerte una serie de retos que te ayudarán a mejorar tus skills como científico de datos.
En todos los ejemplos usaremos Python 3.8 y la terminal de Linux. Si usas Windows, puedes implementar WSL y en Mac no deberías tener inconvenientes en la terminal.
Se dará como completado el reto cuando hayas aprobado el curso de la semana y resuelto el reto. Ah claro, me ayudarías mucho difundiendo que iniciaste este reto en tus redes con #PlatziDataChallenge para de esta forma saber cuántos estudiantes han decidido unirse a esta aventura 💪
Clase 1: Primeros pasos
El primer paso es que crees un entorno virtual que estaremos usando a lo largo de estos retos, para ello debes ejecutar lo siguiente:
mkdir PlatziDataChallengecd
PlatziDataChallenge
pip install virtualenv
virtualenv --python=python3.8 [nombreDeTuEntornoSinCorchetes]
source [nombreDeTuEntornoSinCorchetes]/bin/activate
Con ello entrarás en un entorno virtual el cual podrás confirmar con el nombre de tu entorno entre paréntesis al lado izquierdo del prompt de la terminal. Para salir solo debes correr deactivate.
El siguiente paso es crear el archivo requirements.txt donde estaremos agregando las librerías que vayamos usando. Para esta primera parte solo agrega:
pandas
numpy
jupyter
Seguido, instalamos las librerías dentro del entorno
pip install -r requirements.txt
Luego de haber instalado las librerias a usar, corremos jupyter notebook y te dirijes al puerto donde estará corriendo el Jupyter para así crear tu primer notebook.
import pandas as pd
# Para leer un archivo .csv
df = pd.read_csv("pathDelArchivo.csv")
# Si tiene tiene un seperador que no sea una coma, en este ejemplo uso "#"
df = pd.read_csv("pathDelArchivo.csv", sep="#")
# Si el archivo no tiene el nombre de las columnas (header)
list_columns = ["col1", "col2"] # Nombre de las columnas
df = pd.read_csv("pathDelArchivo.csv", names=list_columns)
# Encontrar más información al importar en CSV con Pandas en:
# https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.read_csv.html
# Ver los primeros y últimos 10 registros, dentro del paréntesis puedes agregar la cantidad de filas a mostrar.
df.head()
# Últimos 10
df.tail()
# Ver percentiles, valor máximo, valor mínimo, desviación estándar, etc.
df.describe()
# Ver tipos de datos de cada columna como también los valores nulos.
df.info()
# Agrupaciones, el .count() es que cuente las filas, También puede ser .sum(), .mean(), etc.
df.groupby(by=["Col1", "Col2"]).count()
# Borrar dos columnas
df.drop(columns=["col1", "col2"])
# Ordenar
df.sort_values(by="Col1", asending=False)
# Eliminar valores duplicados manteniendo el primero
df.drop_values(subset=["Col1", keep="first"])
# Agregar columnas de un dataframe a otro con nombres de columnas keys distintos
df.merge(df2, left_on="colName_df", right_on="ColName_df2")
# Concatenar filas de dos DataFrames, ignorando los índices
pd.concat([df, df2], ignore_index=True)
# Y mi favorita, lambdas. Muy útil para hacer operaciones fila por fila de una o más columnas en un DataFrame de forma muy eficiente.
df["col1"].apply(lambda x: x*8)
Clase 2: Aumentando la cantidad de datos
Pandas es una librería muy fuerte para el manejo de grandes volúmenes de datos, incluso hasta 100GB, pero para llegar a un buen manejo de esa información en tiempo prudente hay que hacer un par de cosas adicionales.
Estudia lo siguiente:
- El parámetro “chunksize” de la función read_csv
- La herramienta CLI htop, será tu mejor herramienta. Mi sugerencia es que siempre tengas abierta una ventana para monitorear cómo va tu sistema.
- Vigilar en todo momento la RAM libre disponible que tengas, (una vez consumas toda la RAM prepárete para una no grata experiencia con tu PC)
- Poder visualizar todas las columnas:
pd.set_option('display.max_columns', None) - Magics commands, son comandos especiales de Jupyter para hacer cosas cool. En esta ocasión profundiza en
%timeel cual te dice el tiempo que tarda en ejecutarse esa celda. - Aprende a leer múltiples archivos .csv que estén en una misma dirección sin especificar el nombre de cada uno de los archivos.
Clase 3: Visualicemos los datos
Como habrás notado en el reto 2, al tener una mayor cantidad de datos hay que hacer algunos pasos adicionales en Pandas para poder codear y hacer analítica además de vigilar en todo momento la RAM. Pero disponer de una mayor cantidad de RAM nunca está de más.
Actualmente disponemos de varias librerías para la visualización de datos, esta es una pequeña comparativa:
- Matplotlib (Estático): Es la librería insignia, esto es porque fue una de las primeras además de ser muy robusta. Con ella puedes vizaliar casi cualquier gráfico y personalizar muchas de sus partes.
- Seaborn (Estático): Está basada en Matplotlib pero tiene opciones de visualización y colores más agradables a la vista ya que tienen un mejor diseño. Aunque tiene menos galería de imágenes que Matplotlib son más que suficientes para la gran mayoría de análisis exploratorio incluso prescindir de Matplotlib.
- Bokeh (Interactivo): A diferencia de las dos anteriores, esta librería no solo te ofrece gráficos interactivos sino también que puedas desarrollar dashboard completos con facilidad de exportación, tanto en HTML como en un servidor. Ideal si quieres levantar gráficos pesados.
- Plotly (Interactivo): Similar a Bokeh pero con una mayor facilidad de implementación y menos código pero a un precio: tendrás un mayor consumo de cómputo y menos opciones de customización en comparación (opciones muy detalladas). También podrás crear dashboards pero con código adicional.
Existen otras herramientas para visualización de datos con Python, pero estas cuatro son las más populares.
Clase 4: Contemos una historia
Data Science es una profesión que requiere de una mezcla de varios skills como por ejemplo SQL, Python, Deep Learning, Linux, Servidores, etc. Pero hay un skill que no es técnico ¡exacto! Es que te entiendan lo que intentas decir al momento de compartir tus resultados, se le conoce como Storytelling, incluso hay Data Scientists que se especializan en ello creando dashboards muy complejos pero que solos cuentan su historia.
Con Data Storytelling no necesariamente debes estar allí explicando lo que encontraste, sino que utilizando gráficos y textos vas contando una historia. Acá es tu imaginación y la práctica constante la que cobrará protagonismo.
Un ejemplo de Data Storytelling son los resultados de la encuesta de impacto de los estudiantes de Platzi que podrás encontrar en platzi.com/impacto
#NuncaParesDeAprender 💚
Retos
Curso de Manipulación y Análisis de Datos con Pandas y Python
COMPARTE ESTE ARTÍCULO Y MUESTRA LO QUE APRENDISTE








