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 💪
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)
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:
pd.set_option('display.max_columns', None)
%time
el cual te dice el tiempo que tarda en ejecutarse esa celda.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:
Existen otras herramientas para visualización de datos con Python, pero estas cuatro son las más populares.
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 💚
Buenísimo!!! Estaba esperando algo de este estilo para poner a prueba lo aprendido en la ruta de aprendizaje!
Que genial! 😄 Estos retos son perfectos para practicar todo lo aprendido 😃
Listo el curso de Pandas … Ahora a empezar con el primer reto del #PlatziDataChallenge 🤓🤓🤓
¡Excelente Carolina!
Me encanta! muy buena iniciativa
Excelente !!!
¡Excelente iniciativa Platzi! 😃 Me apunto
Excelente, comencemos
Estoy iniciando en Python. Me animo a este reto!!! Vamos con toda para el Curso de Manipulación y Análisis de Datos con Pandas y Python.
Donde esta el reto 3 y 4?
Saliendo del horno 😅
@osmandi podrías por favor indicarme las fechas para la realización de cada reto o en que reto van para saber si puedo aplicar y participar, la consulta es porque veo que el post es de hace un mes, quedo pendiente de la respuesta
Podrían darnos un tiempo para ponernos al día?
por lo que vi se pueden entregar hasta el 17 de septiembre, habría que hacerlos todos antes de esa fecha
Muy bueno para repasar los conocimientos de los cursos 😄, buena iniciativa
Hola, Para el reto ¿Que bases o conocimientos se requiere?
Python y la terminal de Linux
Excelente me encantaría aplicarrr
No sería mejor usar Jupyter o Colab?
En el entorno está con Jupyter, y sip es más sencillo usar colab porque ya tiene todas las librerías instaladas (en el curso de Pandas es usado). Pero como Data Scientist es importante usar todas las herramientas y manejar la terminal es el pan de cada día.
Estoy recién empezando la escuela de Data Science (voy por el curso de Programación Estocástica). ¿Creen que vale la pena que me inicie en este reto tomando el curso de Manipulación de Datos?
Diría que es mejor que vayas paso a paso, quizás alguien te pueda recomendar otra cosa.
Yo diría que cuanto antes comiences la práctica mejor.
Empieza de una x3
Buenísimo!!
Hola! Alguien ha encontrado la respuesta a la preguntar de Osmande de la clase 2? Me refiero a “leer múltiples archivos .csv que estén en una misma dirección sin especificar el nombre de cada uno de los archivos” … no he encontrado la forma
Que genial esta iniciativa!
Es obligatorio el uso de virtualenv? Se puede usar anaconda para los ambientes virtuales?