Taller en Google Colab: Storytelling con el Mercado de Analistas de Datos
Objetivo: Analizar el dataset de Kaggle sobre ofertas laborales para analistas de datos y construir una historia visual con hallazgos clave.
🔗 Paso 1: Accede a Google Colab
Conoce a Alex, un joven apasionado por los datos. Ha decidido convertirse en analista de datos y quiere explorar el mercado laboral para entender dónde postularse y qué habilidades necesita.
1. Ingresa a https://colab.research.google.com.
2. Crea un nuevo notebook.
3. Cambia el nombre a: Storytelling_AnalystJobs.
2. Crea un nuevo notebook.
3. Cambia el nombre a: Storytelling_AnalystJobs.
📥 Paso 2: Cargar el dataset
Alex encontró un interesante dataset de Kaggle con miles de ofertas laborales para analistas de datos. Ahora quiere cargarlo en su notebook para comenzar su análisis.
1. Descarga el archivo CSV desde Kaggle.
2. Sube el archivo a tu notebook usando:
2. Sube el archivo a tu notebook usando:
from google.colab import files
uploaded = files.upload()
3. Luego importa pandas y carga los datos:
import pandas as pd
df = pd.read_csv('data_analyst_jobs.csv')
df.head()
🧭 Paso 3: Explora el mercado laboral
Alex se pregunta: ¿Dónde hay más oportunidades de trabajo? Decide visualizar las ciudades con mayor número de ofertas para saber a dónde podría mudarse.
df['Location'].value_counts().head(10).plot(kind='barh')
Usa colores suaves como azul o verde para mapas y gráficos iniciales.
💸 Paso 4: ¿Cuánto ganan?
Ahora Alex quiere saber si esas ciudades bien posicionadas también ofrecen buenos salarios. Es hora de explorar los datos de salarios disponibles.
Filtra los trabajos con salario disponible:
df[df['Salary Estimate'].notnull()]['Salary Estimate'].value_counts().head()
🔍 Paso 5: ¿Qué habilidades buscan?
Al revisar las descripciones de empleo, Alex se da cuenta de que hay patrones en los conocimientos solicitados. Quiere crear una nube de palabras para detectar las habilidades clave.
Haz una nube de palabras de las descripciones:
from wordcloud import WordCloud
import matplotlib.pyplot as plt
text = " ".join(df['Job Description'].dropna())
wordcloud = WordCloud(width=800, height=400, background_color='white').generate(text)
plt.figure(figsize=(10, 5))
plt.imshow(wordcloud, interpolation='bilinear')
plt.axis('off')
plt.show()
🎯 Paso 6: Cierra tu historia
Después de todo este análisis, Alex ya tiene una idea clara de dónde quiere trabajar, qué empresas le interesan y qué habilidades necesita fortalecer.
Responde:
- ¿Dónde te gustaría trabajar y por qué?
- ¿Qué debes aprender según el mercado?
- ¿Qué empresa te llama más la atención?
Presenta estos resultados con visualizaciones atractivas y termina tu notebook con una sección de conclusiones.
📈 Paso 7: Comparación de tipos de empleo
Alex empieza a notar que hay diferencias entre tipos de contratos y niveles de experiencia. Decide graficarlos para entender mejor el panorama laboral.
import matplotlib.pyplot as plt
df['Job Type'].value_counts().plot(kind='bar', color='skyblue')
plt.title('Tipos de empleo disponibles')
plt.xlabel('Tipo')
plt.ylabel('Frecuencia')
plt.xticks(rotation=45)
plt.tight_layout()
plt.show()
🏢 Paso 8: Empresas que más contratan
Alex quiere saber qué empresas aparecen más frecuentemente en las ofertas. Esto puede indicarle posibles líderes del sector.
df['Company Name'].value_counts().head(10).plot(kind='barh', color='mediumseagreen')
plt.title('Top 10 empresas que más contratan')
plt.xlabel('Número de ofertas')
plt.ylabel('Empresa')
plt.tight_layout()
plt.show()
🧑💼 Paso 9: Nivel de experiencia solicitado
Al revisar las vacantes, Alex se pregunta: ¿Están buscando juniors o expertos? Un gráfico puede ayudarle a ver esto con claridad.
df['Seniority Level'].value_counts().plot(kind='pie', autopct='%1.1f%%', startangle=140, colors=['#90e0ef','#48cae4','#00b4d8'])
plt.title('Distribución por nivel de experiencia')
plt.ylabel('')
plt.show()
🕵️♂️ Paso 10: Palabras clave más comunes
Para reforzar su perfil, Alex quiere conocer las palabras más comunes en las descripciones de trabajo.
from collections import Counter
import re
words = " ".join(df['Job Description'].dropna())
words = re.findall(r'\b\w+\b', words.lower())
common = Counter(words).most_common(20)
palabras, cantidades = zip(*common)
plt.figure(figsize=(10, 5))
plt.bar(palabras, cantidades, color='coral')
plt.xticks(rotation=45)
plt.title('Palabras más comunes en descripciones')
plt.tight_layout()
plt.show()
🗺️ Paso 11: Mapa de ubicaciones
Alex visualiza las ubicaciones más repetidas en forma de mapa para tener un panorama geográfico del mercado.
import seaborn as sns
locs = df['Location'].value_counts().head(15)
sns.barplot(x=locs.values, y=locs.index, palette='Blues_d')
plt.title('Top 15 ubicaciones con más empleos')
plt.xlabel('Cantidad de ofertas')
plt.ylabel('Ubicación')
plt.tight_layout()
plt.show()
🧠 Paso 12: Conclusión interactiva
Con todos estos datos, Alex crea una visualización interactiva final con Plotly para compartir su historia con amigos y colegas.
import plotly.express as px
data = df['Location'].value_counts().reset_index()
data.columns = ['Location', 'Count']
fig = px.bar(data.head(10), x='Location', y='Count', color='Location', title='Top 10 ciudades con más empleos')
fig.show()
Comentarios
Publicar un comentario