Insights / Blog

Integrare Python in Tableau [UPDATE]

Training_TIL

Ciao a tutti oggi vorrei mostrarvi come è possibile integrare degli script Python in Tableau e alcune piccole applicazioni nei grafici.

Per integrare Python in Tableau è necessario installare un servizio esterno chiamato Tabpy.
Per la parte di installazione bisogna seguire dei passaggi precisi che vedremo ora insieme.

Installare Python su pc (o server)

Il primo passo da seguire è, innanzitutto, quello di assicurarsi di avere installato python sulla propria macchina e in particolare la libreria pip che permette di installare i pacchetti tramite prompt dei comandi.

Installare pip

Per installare pip bisogna scaricare il file da questo link. Apparirà una pagina internet -> tasto destro sulla pagina -> salva con nome.
Apriamo ora un prompt dei comandi e cambiamo la nostra directory spostandoci in quella in cui abbiamo scaricato il file get-pip.py.
Una volta dentro la nostra directory lanciamo il comando python get-pip.py e la libreria verrà installata nel nostro sistema.

Installare tabpy

Per installare tabpy, a questo punto ci bastera lanciare da prompt il comando pip install tabpye aspettiamo che tutto venga installato correttamente.

Per mandare in run Tabpy è consigliato usare una Python virtual enviroment. Vediamo ora come è possibile farlo.

Apriamo un nuovo prompt di comando e lanciamo il comando pip install virtualenv

Copiamoci il percorso scritto in giallo tra apici perché è la directory in cui dovremo spostarci per avviare tabpy.

Spostiamoci, quindi, nella directory utilizzando il comando cd <directory scritta in giallo> e premiamo INVIO.

Una volta dentro nella directory creiamo una virtual enviroment con il comando virtualenv <nome> che in questo caso ho chiamato prova.

In seguito eseguiamo il comando prova\Scripts\activate

Così facendo,il nome della nostra virtual environment creata apparirà tra parentesi prima del percorso della nostra directory.

Lanciamo ora il comando tabpy e se la procedura è stata eseguita correttamente apparirà il comando Web Service listening on port 9004, tabpy si avvierà e potremo integrare python in Tableau.

Se apparirà il comando Web Service listening on port 9004 l’installazione è andata a buon fine e potremo integrare python in Tableau.

Vi consiglio di segnarvi i passaggi su un blocco note in modo da tenerne traccia di tutti i passaggi da rifare qualsiasi volta che si voglia utilizzare python in Tableau.

Connettere Tabpy in Tableau Desktop

Apriamo Tableau connettendoci al db desiderato,in questo caso il sample superstore, apriamo un nuovo foglio di lavoro e spostiamoci su help > Settings and Performances > Manage External Service Connection…

Clicchiamoci sopra e apparirà una finestrà chiamata External Service Connection e dovrà essere settata come nell’immagine sottostante

Clicchiamo su Test Connection per verificare che la connessione con Tabpy sia settata perfettamente. Apparirà una finestra che ci dirà se tutto è andata a buon fine.

Ora è tutto pronto per eseguire i nostri script Python in Tableau e possiamo vedere alcuni piccoli esempi di applicazione.

Funzioni python in Tableau

Per integrare script python in Tableau bisogna creare dei campi calcolati. Vi sono delle funzioni specifiche che permettono di fare ciò e sono:

SCRIPT_BOOL
SCRIPT_INT
SCRIPT_REAL
SCRIPT_STR

Bisogna usare la specifica funzione a seconda che debba ritornare un booleano, un numero intero, un numero o una stringa.
Nel caso che stiamo per andare a vedere useremo SCRIPT_BOOL.

Vediamo quindi, come è possibile applicare le funzioni e nel caso specifico trovare le category con i profitti > 0.
Apriamo un campo calcolato e scriviamo ciò che segue:

  • L’espressione viene passata direttamente a un’istanza di servizio esterna in esecuzione. Nelle espressioni Python, usa _argn (con un trattino basso iniziale) per fare riferimento ai parametri (_arg1, _arg2, ecc.).
  • In questo esempio, _arg1 è SUM([Profit]).
  • Tutti i campi che passano in python devono essere aggregati come Sum(PROFIT), MIN(Profit), Max (Profit), ATTR( Category) etc..

Creiamo un barchart portando in righe Category e SubCategory e SUM(Profit) in colonne.
Il campo calcolato appena creato lo portiamo in colore in modo che risulti più facile e immediata la visualizzazione delle subcategory positive o negative.

Un altro esempio che vi voglio mostrare è come creare creare un campo calcolato che calcoli il coefficiente di correlazione di Pearson (r).

La correlazione è una tecnica che serve per scoprire le relazione tra 2 variabili quantitative, continue.
Il coefficiente di correlazione di Pearson (r) è una misura della forza dell’associazione tra le due variabili.

Sempre utilizzando il Sample Superstore creiamo, innanzitutto, uno scatterplot con Profit in righe e Category e Sales in colonne. Portiamo, inoltre, in dettaglio i Customer Name

Creiamo un campo calcolato denominato Pearson Correlation Coefficient come segue:

In questo caso utilizziamo la funzione SCRIPT_REAL in quanto deve ritornarci un valore numerico.
All’interno della funzione è stata importata la libreria di Python numpy con il comando import numpy as np, la quale ci permette di calcolare il coefficiente di correlazione attraverso la funzione np.corrcoef.

Clicchiamo Ok e portiamo il nuovo campo calcolato in colore.
Inizialmente ci darà questo errore

Ciò è dovuto al fatto che il campo appena creato è una Table Calculation ed è computato in modo errato.
Conseguentemente clicchiamo con il tasto destro sulla pillola appena inserita in colore > Compute using > Customer Name.
Così facendo ci apparirà il nostro scatterplot e ci verrà mostrato il coefficiente di correlazione per ogni Category considerata.

Per oggi è tutto, spero sia stato utile e grazie per aver letto questo blog!

Potete seguirmi su Linkedin, Twitter e Tableau Public.

Blog
data driven business

Data-driven business: perché il dato è cruciale per l’azienda?

Il data-driven business è un percorso a cui ormai nessuna impresa può sottrarsi. Contare su...

Blog
creare grafici interattivi

Creare grafici interattivi: Come si fa e principali vantaggi

Nel mondo digitale odierno, la visualizzazione dei dati è fondamentale per comunicare informazioni complesse in...