Taller: Storytelling con el Mercado de Analistas de Datos

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.

📥 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:
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

Entradas más populares de este blog

Taller - Dashboard en Python