Fare report regolari sulle metriche di business più importanti è una responsabilità centrale per molti analisti. Farlo con costanza e senza errori è estremamente prezioso per la tua organizzazione, perché supporta le decisioni aziendali, ma a quale costo? Troppo spesso devi seguire una serie di passaggi manuali per raccogliere i dati, costruire il report con gli indicatori chiave di performance e condividerlo con gli stakeholder. Questo flusso di lavoro richiede molto tempo ed è soggetto a errori.
Per fortuna c’è di meglio: puoi sfruttare le funzionalità di pianificazione di DataCamp Workspace per generare automaticamente report sulle metriche di business con visualizzazioni efficaci, risparmiando tempo e riducendo al minimo la probabilità di errori nel processo di reporting.
In questo articolo mostreremo il flusso di lavoro eseguendo a intervalli regolari un report su dati di borsa (perché ci sono nuovi dati quasi ogni giorno), in modo che il notebook rifletta sempre gli ultimi eventi del mercato.
Preferisci guardare questo articolo in formato video? DataCamp ha ospitato un code along sullo stesso argomento, configurando un reporting automatico sui dati di vendita di biciclette archiviati in un database Microsoft SQL Server. Puoi rivedere questo code along visitando questo link.
Creare il report
Per iniziare, dobbiamo creare un nuovo progetto dati in Workspace (chiamato workspace) che esegua le operazioni che vogliamo automatizzare nel passaggio successivo. Per questo tutorial lavoreremo con dati di borsa, perché sono pubblicamente disponibili e si aggiornano regolarmente. In questo modo, il nostro report cambierà nel tempo.
La soluzione più pratica è creare una copia di un workspace che ha già tutto il codice. Se vuoi invece seguire ogni passaggio, crea un nuovo workspace da zero e aggiungi una cella di codice Python che importi i dati di borsa e li visualizzi:
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 spiegazione dettagliata di questo codice esula dallo scopo dell’articolo; vogliamo solo far girare del codice Python per poterlo pianificare nel passaggio successivo! Puoi verificare che il codice nel notebook del tuo workspace funzioni cliccando il pulsante "Run" in alto. Dovresti vedere comparire un bellissimo grafico plotly:

Automatizzare il report
Ora che abbiamo un workspace con del codice Python, configuriamolo in modo che venga eseguito con una cadenza ricorrente! Vai al menu "Run" e seleziona "Schedule run":

Nel modal puoi programmare le esecuzioni del notebook scegliendo tra frequenza giornaliera o settimanale e specificando l’orario di esecuzione. Inoltre, puoi ricevere notifiche email sia per le esecuzioni riuscite sia per quelle non riuscite.

Per fare qualche prova, imposta il notebook su una pianificazione giornaliera, a un orario tra un paio di minuti, così potrai vedere la pianificazione in azione!
Guarda la magia
Se hai configurato il notebook per l’esecuzione tra pochi minuti, attendi che parta l’esecuzione pianificata. All’orario impostato vedrai comparire un messaggio "Running X cells on a schedule" sotto il pulsante Run. Tutto il codice verrà eseguito nuovamente dall’inizio alla fine, aggiornando gli output nel caso ci siano nuovi dati rispetto all’ultima esecuzione.

Se hai configurato il workspace per inviarti un’email in caso di esecuzione riuscita, troverai anche un messaggio nella tua casella di posta:

Ecco fatto! Ora il tuo notebook verrà eseguito ogni giorno o ogni settimana, a seconda di come l’hai configurato, così quando visiterai il workspace avrà sempre i dati più recenti. In questo esempio con i dati di borsa, significa che sarai sempre aggiornato sul valore totale del tuo portafoglio azionario.
In un contesto aziendale, puoi usare questa funzionalità insieme a uno dei connettori dati nativi di Workspace per collegarti, ad esempio, a un database PostgreSQL, a un data warehouse Snowflake o a un cluster Redshift per importare i dati più recenti della tua azienda e creare report efficaci da condividere con gli stakeholder.
Dalla sua introduzione, gli utenti di Workspace hanno usato questa funzionalità per vari scopi, tra cui:
- eseguire controlli di validazione dei dati durante le migrazioni per garantire la coerenza tra diverse fonti,
- fare scraping di pagine di politiche pubbliche aggiornate regolarmente per creare dataset e monitorare l’equità delle nomine civiche, e
- automatizzare la raccolta dati e inviare riepiloghi email settimanali personalizzati agli utenti di applicazioni SaaS integrandola con soluzioni come Customer.io.
La flessibilità di Python unita all’ambiente notebook completamente configurato di Workspace è una combinazione potente; siamo curiosi di vedere cosa realizzerai con questa nuova funzionalità di Workspace!

