VISIDATA, come creare una tabella PIVOT

In questi giorni ho avuto la necessità di creare tabelle PIVOT a partire da tabelle sorgenti presenti nel repository della Protezione Civile (PCM-DPC), le ormai tristi ma famose tabelle che raccolgono i dati sul coronavirus (COVID-19).

Le PIVOT possono essere realizzate con vari programmi, anche usando SQL (per esempio in data.world), ma in questo blog post (per me è un promemoria per non dimenticarlo) utilizzerò Visidata, un programma straordinario (VisiData è un fantastico strumento open source per esplorare e manipolare dati. Mette insieme la chiarezza di un foglio di calcolo, con l’efficienza del terminale e la potenza di Python, in una utility leggera in grado di gestire milioni di righe con facilità. (cit. Andrea Borruso)).

La tabella sorgente che utilizzerò è la dpc-covid19-ita-province.csv che raccoglie i dati per provincia:

datastatocodice_regionedenominazione_regionecodice_provinciadenominazione_provinciasigla_provincialatlongtotale_casinote_itnote_en
2020-02-24T18:00:00ITA13Abruzzo069ChietiCH42.3510316714.167545740
2020-02-24T18:00:00ITA13Abruzzo066L’AquilaAQ42.3512219613.398438230
2020-02-24T18:00:00ITA13Abruzzo068PescaraPE42.4645839814.213648220
2020-02-24T18:00:00ITA13Abruzzo067TeramoTE42.658917713.704399710
2020-02-24T18:00:00ITA13Abruzzo979In fase di definizione/aggiornamento000

la tabella è raggiungibile tramite questo URL:

https://raw.githubusercontent.com/pcm-dpc/COVID-19/master/dati-province/dpc-covid19-ita-province.csv

la visualizzo in visidata tramite questo comando (da riga di comando):

curl -L https://raw.githubusercontent.com/pcm-dpc/COVID-19/master/dati-province/dpc-covid19-ita-province.csv | vd -f csv
visidata

Da questa tabella mi servono solo tre campi (data, denominazione_provincia e totale_casi) per fare la PIVOT, per nascondere le colonne che non mi servono basta selezionarle e pigiare meno (-):

visidata

a partire da queste tre colonne, per realizzare la PIVOT (devo ottenere: 107 righe quante sono le province e tante colonne quante sono le date del censimento, come valore utilizzerò il max(totale_casi):

  1. sul campo totale_casi pigiare + e digitare max;
  2. sul campo denominazione_provincia digitare ! per renderla colonna chiave;
  3. spostare il cursore su data e pigiare shift+W per realizzare la PIVOT:

da buon osservatore, noto che le righe sono 108 (guarda in basso a destra) e che i nomi dei campi contengono le date ma con totale_casi_max_ come prefisso.

Per eliminare la 108esima riga che non ci serve, la seleziono e pigio d (delete)

per modificare i nomi delle colonne da totale_casi_max_2020-02-24T18:00:00 a 2020-02-24 :

  1. pigio shift+c per aprire il foglio delle colonne;
  2. seleziono tutte le colonne da modificare, cioè quelle che contengono - (trattino), sulla prima colonna pigio | e -;
  3. pigio g* per il trova e sostituisci tramite regex e digito (.+)(2020.+)(T.+)/\2 e invio;
  4. pigio la q per tornare al foglio precedente, ecco il risultato:
PIVOT

Per salvare la tabella, pigiare ctrl+s


NOTE FINALI: Visidata è uno strumento straordinario ma occorre usarlo per apprezzare le potenzialità, per realizzare questa PIVOT occorrono circa 20 secondi (se sai usare lo strumento) altrimenti contatta wikiAndy! 😉 .


Riferimenti

Ringraziamenti:


Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo di WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione /  Modifica )

Google photo

Stai commentando usando il tuo account Google. Chiudi sessione /  Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione /  Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione /  Modifica )

Connessione a %s...

Questo sito utilizza Akismet per ridurre lo spam. Scopri come vengono elaborati i dati derivati dai commenti.