Python per il CFO

pittogramma Zerouno

Tech InDepth

Python per il CFO

Dal ROI alla deviazione standard: come realizzare script con Python per aiutarci nella stesura del budget.

02 Set 2022

di Pablo Cerini

Python è un linguaggio di scripting C like, sviluppato in ambiente Linux/Unix vicino ai contesti scientifici legati al software Mathlab. In seguito, la sua tecnologia si è affermata in diversi ambiti informatici, dai web service alla gestione dei database. La potenza di Python sta nell’offrire numerose librerie di funzioni già scritte per i più diversi ambiti. Particolarmente apprezzato nei contesti matematici, in seguito Python si è evoluto diventando una piattaforma leader nell’analisi dati e nel Machine Learning.

Uno dei vantaggi più apprezzati di Python per chi non è un informatico professionista è la curva di apprendimento, decisamente morbida. Python è stato creato non come strumento per gli informatici, ma per scienziati che avessero bisogno di creare script in modo semplice, rimanendo concentrati sulle loro ricerche, senza dover investire molto tempo nell’acquisire un know how di tipo informatico. Python offre ambienti di utilizzo dai nomi esotici, ma che si rivelano essere molto più user friendly di quanto ci si aspetti.

Come installare l’ambiente Python

Il modo più semplice di installare Python per un utente Windows è di scaricare la suite Anaconda, che contiene al suo interno, oltre all’interprete Python, anche una raccolta delle librerie e degli strumenti di più diffuso utilizzo.

WHITEPAPER
Sai come implementare una rivoluzione dell’IT che parte dai processi più profondi?
Digital Transformation
Software

La suite Anaconda si installa come un normale eseguibile Windows. Una volta installata, offre all’utente una dashboard da cui richiamare lo strumento con cui intende lavorare, oppure il prompt per digitare direttamente comandi in Python. La configurazione non richiede particolari accorgimenti, anche se su alcune installazioni potrebbe essere necessario impostare la variabile di ambiente PATH, per indicare il percorso della versione di Python che Anaconda deve impiegare.

Inoltre, Anaconda offre al suo interno anche un comodo menu per gli aggiornamenti della suite e dei suoi componenti, in modo che l’utente possa avere un ambiente sempre aggiornato senza dover approfondire i tecnicismi degli strumenti (NPM, ad esempio) che operano dietro le quinte.

Gli strumenti messi a disposizione da Python

Un ambiente particolarmente di semplice utilizzo è la suite di Notebook Jupiter, disponibile all’interno del pacchetto Anaconda. Alla prima apertura, Jupiter si presenta come un editor di testo leggermene ambizioso dal punto di vista grafico, ma la sua interfaccia semplice cela grandi potenzialità. La particolarità di questo editor di testo è la sua capacità di eseguire in tempo reale script Python mostrandone anche l’output, in modo che l’utente sia in grado di percepire in tempo reale il risultato delle sue modifiche senza dover configurare complessi strumenti di debug.

L’ambiente Jupiter si propone come strumento di aiuto per tutti quegli utenti che hanno bisogno di accedere a sofisticate funzioni statistiche e finanziarie, ma che desiderano una curva di apprendimento dello strumento molto user friendly. Infatti, solo possedendo alcune nozioni basilari di coding, è possibile impiegare Python per realizzare complesse analisi dati e creare presentazioni accattivanti.

Python offre una vasta gamma di librerie dedicate a impieghi matematici o finanziari. La più famosa è la collezione di funzioni NumPy, specializzata in elaborazioni statistiche e matematiche. Creata nel 2005 da Travis Oliphant, permette una agile applicazione di funzioni matematiche a vettori e matrici multidimensionali. Questa completa gamma di funzioni statistiche è correlata da una libreria dedicata a semplificare le attività di importazioni ed esportazioni dati. Questa è la libreria Panda che permette, veramente con poche righe di scripting, di collegarsi a fonti dati di qualsiasi tipo, fino anche a impostare il richiamo di web service di siti web di terze parti, come Yahoo Finance.

Integrazione con il gestionale

Python offre già risultati appaganti usato stand alone, ma è possibile integrare le sue elaborazioni con ambienti esterni, come un software ERP o uno strumento dedicato alla Business Intelligence come Microsoft Power BI.

L’integrazione con il gestionale può avvenire in due modi: il più semplice è quello di utilizzare le funzioni di esportazione in file CSV di Python che permettono, una volta effettuata la nostra elaborazione sul notebook dell’ambiente Anaconda, di esportarne i risultati in un tracciato libero, concordabile con il nostro consulente funzionale, in modo che possa essere importato nel gestionale ERP.

Il secondo modo è di utilizzare un web service, creato in Python oppure residente sulla Server Farm del gestionale. In quest’ultimo caso il nostro script in Python si limiterebbe a operare come client, autenticandosi con le modalità previste ed effettuando le chiamate per scrivere e leggere i dati. Le librerie Python supportano tutte le modalità di autenticazione e crittografazione più diffuse, e permettono di fruire la quasi totalità delle API REST esistenti sul mercato.

Operare con Python

Python offre la massima flessibilità di utilizzo e può essere impiegato a qualsiasi livello dello stack. Si può impiegare Python a basso livello, per collegarsi direttamente al database SQL ed effettuare operazioni di ETL sui dati, in modo da preparare un dataset da dare poi in pasto alle funzioni di presentazione della libreria Panda. Oppure si può lavorare a un livello di presentation, partendo da dataset già finiti importati dal gestionale e plottando grafici e dashboard visuali con Matplotlib.

Nulla vieta, poi, di utilizzare l’intero stack di ETL e Presentation per manipolare dati provenienti da una fonte esterna dal gestionale (ad esempio un foglio Excel con i dati di vendita di una campagna fuori programma) e normalizzarli in modo che siano fruibili dalle logiche delle funzioni di bilancio e budget ERP.

Pablo Cerini

Giornalista

Sviluppatore software, cresciuto nel mondo ERP, ma appassionato del mondo DEV a 360°. Affascinato dalla statistica e dal machine learning, con un chiodo fisso per le candele giapponesi

Articolo 1 di 5