Informar periódicamente sobre métricas clave del negocio es una responsabilidad central para muchos analistas. Hacerlo de forma constante y sin errores aporta un enorme valor a tu organización para respaldar decisiones, pero ¿a qué precio? Demasiado a menudo, tienes que pasar por un montón de pasos manuales para recopilar los datos, crear el informe con los indicadores clave de rendimiento y compartirlo con las partes interesadas. Este flujo de trabajo consume tiempo y es propenso a fallos.
Por suerte, hay una alternativa mejor: puedes usar la programación de DataCamp Workspace para generar automáticamente informes de métricas de negocio con visualizaciones claras, ahorrando tiempo y reduciendo al mínimo los errores en tu proceso de reporte.
En este artículo, te mostramos el flujo de trabajo ejecutando un informe sobre datos del mercado bursátil (porque casi cada día hay datos nuevos) con una programación recurrente para que el cuaderno refleje siempre los últimos movimientos del mercado.
¿Prefieres ver este artículo en vídeo? DataCamp organizó un code along sobre el mismo tema, configurando informes automatizados con datos de ventas de bicicletas almacenados en una base de datos de Microsoft SQL Server. Puedes reproducirlo visitando este enlace.
Crear el informe
Para empezar, tenemos que crear un nuevo proyecto de datos en Workspace (un workspace) que haga las operaciones que queremos automatizar en el siguiente paso. En este tutorial trabajaremos con datos bursátiles porque son públicos y se actualizan con frecuencia. Así, nuestro informe irá cambiando con el tiempo.
Lo más cómodo es crear una copia de un workspace que ya tiene todo el código. Si prefieres seguir cada paso por tu cuenta, crea un workspace nuevo desde cero y añade una celda de código en Python que importe datos bursátiles y los visualice:
import pandas as pd
import plotly.express as px
import yfinance as yf
# Define how many stock I own of each ticker
holdings = {
'AAPL': 16,
'TSLA': 15,
'TEAM': 7,
}
# Get the data
tickers = list(holdings.keys())
data = yf.download(tickers, start="2023-01-01")
# Wrangle the data
adj_close = data['Adj Close'].reset_index()
adj_close_long = pd.melt(
adj_close,
id_vars='Date',
value_vars=tickers,
var_name='ticker',
value_name='adj_close'
)
adj_close_long['total_value'] = adj_close_long['adj_close'] * adj_close_long['ticker'].map(holdings)
adj_close_long
# Show the position values for stocks in my portfolio
fig = px.line(
adj_close_long, x='Date', y='total_value', color='ticker'
)
fig.update_layout(
title="Position values for for stocks in my portfolio",
yaxis_title="Position Value",
xaxis_title="Date"
)
fig.show()
Una explicación detallada de este código se sale del objetivo de este artículo; lo que queremos es tener algo de Python funcionando para poder programarlo en el siguiente paso. Puedes comprobar que el código de tu notebook en Workspace se ejecuta correctamente haciendo clic en el botón "Run" de la parte superior. Deberías ver un bonito gráfico de plotly:

Automatizar el informe
Ahora que ya tenemos un workspace con algo de código en Python, vamos a configurarlo para que se ejecute de forma periódica. Ve al menú "Run" y selecciona "Schedule run":

En la ventana modal, puedes programar las ejecuciones del notebook eligiendo entre frecuencia diaria o semanal y especificando la hora. Además, puedes optar por recibir notificaciones por correo tanto si la ejecución termina bien como si falla.

Para hacer la prueba, programa tu notebook para que se ejecute a diario, a una hora que sea un par de minutos posterior a la actual, y así verás la programación en acción.
Mira cómo cobra vida
Si has configurado el notebook para que se ejecute en unos minutos, espera a que arranque la ejecución programada. A la hora indicada, verás el mensaje "Running X cells on a schedule" debajo del botón Run. Todo el código se ejecutará de arriba abajo, actualizando las salidas si hay datos nuevos respecto a la última vez.

Si configuraste el workspace para que te envíe un correo cuando la ejecución sea correcta, también habrás recibido un email en tu bandeja de entrada:

¡Y listo! Tu notebook se ejecutará cada día o cada semana, según lo hayas configurado, así que cuando visites el workspace siempre tendrá los datos más recientes. En este ejemplo con datos bursátiles, significa que siempre sabrás el valor total de tu cartera.
En un contexto empresarial, puedes combinar esta función con uno de los conectores de datos nativos de Workspace para conectarte, por ejemplo, a una base de datos PostgreSQL, un almacén de datos Snowflake o un cluster de Redshift para traer los datos más recientes de tu empresa y crear informes útiles para compartir con las partes interesadas.
Desde su lanzamiento, los usuarios de Workspace han utilizado esta función para distintos fines, entre ellos:
- ejecutar comprobaciones de validación de datos durante migraciones para asegurar la consistencia entre distintas fuentes,
- extraer datos de páginas de políticas públicas que se actualizan con regularidad para crear conjuntos de datos y monitorizar la imparcialidad de los nombramientos cívicos, y
- automatizar la recopilación de datos y enviar resúmenes semanales personalizados por correo a usuarios de aplicaciones SaaS integrándolo con soluciones como Customer.io.
La flexibilidad de Python junto con el entorno de notebooks totalmente configurado de Workspace es una combinación potente; estamos deseando ver qué creas con esta nueva función de Workspace.

