Vai al contenuto
Leo

Libreria

Tabelle di dati

Tabelle come nei fogli di calcolo: filtri, ordinamenti, raggruppamenti e totali.

  • 41 voci
  • 4 voci con esempi eseguiti

Funzioni 5

tabella(dati = nulla, colonne = nulla)#

Crea una tabella di dati con righe e colonne.

dati può essere una lista di dizionari (uno per riga), una lista di liste (la prima riga sono i nomi delle colonne, oppure li dai con colonne) o un dizionario di colonne.

Esempioeseguito con Leo
variabile t = tabella([{"nome": "Ada", "voto": 9}, {"nome": "Bruno", "voto": 7}])stampa(t)
Uscita
 nome  | voto
-------+------
 Ada   |    9
 Bruno |    7
(2 righe, 2 colonne)

tabella_da_csv(testo, separatore = nulla)#

Crea una tabella da un testo CSV (la prima riga sono i nomi delle colonne).

Il separatore (, ; o tabulazione) si indovina da solo, i numeri diventano numeri e le celle vuote diventano nulla.

Esempioeseguito con Leo
variabile t = tabella_da_csv("nome;voto\nAda;9\nBruno;7")

tabella_da_json(testo)#

Crea una tabella da un testo JSON (una lista di oggetti, uno per riga).

Esempioeseguito con Leo
tabella_da_json("[\{\"nome\": \"Ada\"\}]")
Altri esempicontrollato con Leo
variabile t = tabella_da_json(leggi_file("classe.json"))

tabella_da_file(percorso, separatore = nulla)#

Legge una tabella da un file CSV (anche salvato da Excel) o JSON.

Il tipo si capisce dall'estensione (.csv, .tsv, .txt, .json). Le celle vuote diventano nulla.

Esempioeseguito con Leo
variabile voti = tabella_da_file("voti.csv")
Altri esempicontrollato con Leo
variabile voti = [7, 8, 6, 9]   # valore di provastampa(voti.prime(5))

tabella_da_database(database, nome_o_sql, parametri = nulla)#

Crea una tabella da una tabella di un database SQLite o da una ricerca SQL.

database è un database aperto con apri_database oppure il percorso del file.

Esempiocontrollato con Leo
tabella_da_database("negozio.db", "prodotti")variabile db = apri_database("prova.db")   # valore di provatabella_da_database(db, "SELECT nome, prezzo FROM prodotti WHERE prezzo < ?", [10])

Oggetto «tabella»

Una tabella di dati: colonne con un nome, tutte lunghe uguali.

ProprietàSignificato
numero_colonne
numero_righe

.accoda(altra)#

Una tabella con le righe di questa e poi quelle dell'altra (le colonne si uniscono).

Esempiocontrollato con Leo
variabile tutti = classe_a.accoda(classe_b)

.aggiungi_colonna(nome, valori)#

Una tabella con una colonna in più (o cambiata, se c'è già).

valori è una funzione che riceve la riga e calcola la cella, una lista (un valore per riga) o un valore solo, uguale per tutte le righe.

Esempiocontrollato con Leo
t = t.aggiungi_colonna("totale", funzione (r) restituisci r["prezzo"] * r["quantità"] fine)

.aggiungi_riga(riga)#

Aggiunge una riga in fondo alla tabella (cambia proprio questa tabella).

La riga è un dizionario (le colonne che mancano restano nulla, quelle nuove si aggiungono) oppure una lista con un valore per colonna.

Esempiocontrollato con Leo
variabile voti = [7, 8, 6, 9]   # valore di provavoti.aggiungi_riga({"nome": "Carla", "voto": 8})

.campione(quante = 5, seme = nulla)#

Alcune righe scelte a caso (con seme sempre le stesse).

Esempiocontrollato con Leo
stampa(domande.campione(3))

.cerca(testo, colonne = nulla)#

Le righe in cui una cella contiene il testo (senza badare alle maiuscole).

Esempiocontrollato con Leo
variabile rubrica = {"Anna": "333 1234567", "Bruno": "347 7654321"}   # valore di provastampa(rubrica.cerca("rossi"))variabile rubrica = {"Anna": "333 1234567", "Bruno": "347 7654321"}   # valore di provarubrica.cerca("rossi", ["cognome"])

.colonna(nome, senza_mancanti = falso)#

I valori di una colonna, come lista.

Con senza_mancanti = vero le celle vuote restano fuori (comodo per i calcoli).

Esempiocontrollato con Leo
variabile voti = [7, 8, 6, 9]   # valore di provastampa(media(voti.colonna("voto", senza_mancanti = vero)))

.colonne()#

La lista dei nomi delle colonne.

Esempiocontrollato con Leo
variabile voti = [7, 8, 6, 9]   # valore di provastampa(voti.colonne())

.conta_valori(colonna)#

Quante volte compare ogni valore della colonna, dal più frequente.

Il risultato ha le colonne: il valore, conteggio e percentuale.

Esempiocontrollato con Leo
stampa(sondaggio.conta_valori("colore_preferito"))

.copia()#

Una copia della tabella (cambiare la copia non cambia l'originale).

Esempiocontrollato con Leo
variabile voti = [7, 8, 6, 9]   # valore di provavariabile bozza = voti.copia()bozza.aggiungi_riga({"voto": 7})

.filtra(condizione, operatore, valore)#

Una tabella con solo le righe che rispettano la condizione.

Operatori: = != < <= > >= contiene, inizia con, finisce con, in, non in, tra, mancante.

Esempiocontrollato con Leo
t.filtra("voto", ">=", 6)t.filtra("città", "Roma")t.filtra({"classe": "1A", "voto": [">", 7]})t.filtra(funzione (r) restituisci r["voto"] > r["media"] fine)

.grafico(tipo = "barre", etichette = nulla, valori = nulla, titolo = "")#

Un grafico con i dati della tabella.

etichette è la colonna dei nomi sull'asse, valori una colonna di numeri (o una lista di colonne, per più serie). Senza valori conta quante volte compare ogni etichetta. Per "istogramma" basta una colonna di numeri; per "dispersione" le colonne x e y.

Esempiocontrollato con Leo
vendite.grafico("barre", "mese", "incasso").mostra()sondaggio.grafico("torta", "colore").salva("colori.png")

.in_csv(separatore = ",")#

La tabella come testo CSV (la prima riga sono i nomi delle colonne).

Esempiocontrollato con Leo
variabile voti = [7, 8, 6, 9]   # valore di provascrivi_file("voti.csv", voti.in_csv())variabile voti = [7, 8, 6, 9]   # valore di provavoti.in_csv(";")

.in_html(titolo = "")#

La tabella come testo HTML (<table>...</table>), da mettere in una pagina.

Esempiocontrollato con Leo
variabile voti = [7, 8, 6, 9]   # valore di provavariabile pagina = "<h1>Voti</h1>" + voti.in_html()

.in_json()#

La tabella come testo JSON (una lista di oggetti, uno per riga).

Esempiocontrollato con Leo
variabile voti = [7, 8, 6, 9]   # valore di provavariabile testo = voti.in_json()

.mancanti()#

Un dizionario che dice, per ogni colonna, quante celle sono vuote.

Esempiocontrollato con Leo
stampa(sondaggio.mancanti())

.mostra(righe = 20)#

Scrive la tabella allineata, al massimo con quel numero di righe.

Esempiocontrollato con Leo
variabile voti = [7, 8, 6, 9]   # valore di provavoti.mostra()variabile voti = [7, 8, 6, 9]   # valore di provavoti.mostra(5)

.ordina(colonne, decrescente = falso)#

Una tabella con le righe in ordine secondo una o più colonne.

I testi vanno in ordine alfabetico (senza badare alle maiuscole), le celle vuote sempre in fondo.

Esempiocontrollato con Leo
t.ordina("voto", decrescente = vero)t.ordina(["classe", "nome"])t.ordina("classe, voto decrescente")

.prime(quante = 5)#

Una tabella con solo le prime righe.

Esempiocontrollato con Leo
variabile voti = [7, 8, 6, 9]   # valore di provastampa(voti.ordina("voto", decrescente = vero).prime(3))

.raggruppa(colonne, calcoli = nulla)#

Una riga per ogni gruppo, con i calcoli sulle altre colonne.

calcoli è un dizionario colonna -> calcolo ("somma", "media", "mediana", "conta", "minimo", "massimo", "primo", "ultimo", "elenco", "diversi"), anche più di uno con una lista. Le colonne nuove si chiamano come "media_voto". Senza calcoli conta le righe di ogni gruppo.

Esempiocontrollato con Leo
variabile voti = [7, 8, 6, 9]   # valore di provastampa(voti.raggruppa("classe", {"voto": ["media", "massimo"], "nome": "conta"}))

.riassumi()#

Una tabella con le statistiche di ogni colonna.

Per ogni colonna: tipo, valori pieni, mancanti, valori diversi, minimo, massimo, media e somma (queste ultime due solo per le colonne di numeri).

Esempiocontrollato con Leo
variabile voti = [7, 8, 6, 9]   # valore di provastampa(voti.riassumi())

.riempi_mancanti(valore, colonne = nulla)#

Una tabella in cui le celle vuote hanno quel valore.

Con un dizionario si sceglie un valore per colonna: t.riempi_mancanti({"voto": 0, "note": "-"}).

Esempiocontrollato con Leo
variabile t2 = t.riempi_mancanti(0)

.riga(indice)#

Una riga come dizionario (la prima è la riga 0, l'ultima è -1).

Esempiocontrollato con Leo
variabile primo = classifica.riga(0)stampa(primo["nome"])

.righe()#

Tutte le righe, come lista di dizionari (colonna -> valore).

Esempiocontrollato con Leo
variabile voti = [7, 8, 6, 9]   # valore di provaper ogni r in voti.righe() fai stampa(r["nome"], r["voto"]) fine

.rinomina(vecchio, nuovo)#

Una tabella con una colonna che ha un nome nuovo.

Per cambiarne tante insieme usa un dizionario: t.rinomina({"nm": "nome", "vt": "voto"}).

Esempiocontrollato con Leo
variabile t2 = t.rinomina("Voto finale", "voto")

.salva(percorso, excel = falso)#

Salva la tabella in un file; il formato dipende dall'estensione.

.csv (con excel = vero pronto per l'Excel italiano: ; e virgola decimale), .tsv, .json, .html (una pagina da aprire nel browser) o .md. Restituisce il percorso.

Esempiocontrollato con Leo
classifica.salva("classifica.csv")

.salva_in_database(database, nome, sostituisci = falso)#

Copia le righe in una tabella di un database SQLite.

Se la tabella del database non c'è, si crea con i tipi giusti; se c'è si aggiungono le righe (con sostituisci = vero prima si cancella). database è un database aperto o un percorso.

Esempiocontrollato con Leo
variabile voti = [7, 8, 6, 9]   # valore di provavoti.salva_in_database("scuola.db", "voti")

.seleziona(colonne...)#

Una tabella con solo le colonne scelte, nell'ordine scelto.

Esempiocontrollato con Leo
variabile voti = [7, 8, 6, 9]   # valore di provastampa(voti.seleziona("nome", "voto"))

.statistiche(colonna)#

Un dizionario con i numeri principali di una colonna.

Chiavi: "conta" (celle piene), "mancanti", "diversi", "minimo", "massimo" e, per le colonne di numeri, anche "somma", "media", "mediana" e "deviazione" (deviazione standard).

Esempiocontrollato con Leo
variabile voti = [7, 8, 6, 9]   # valore di provavariabile s = voti.statistiche("voto")stampa(s["media"], s["massimo"])

.tabella_incrociata(righe, colonne, valori = nulla, calcolo = "somma")#

Una tabella pivot (a doppia entrata).

Una riga per ogni valore della colonna righe, una colonna per ogni valore della colonna colonne (nell'ordine in cui compaiono); nelle celle il calcolo sulla colonna valori (senza valori conta le righe).

Esempiocontrollato con Leo
stampa(vendite.tabella_incrociata("negozio", "mese", "incasso"))

.togli_colonne(colonne...)#

Una tabella senza le colonne indicate.

Esempiocontrollato con Leo
variabile pubblica = iscritti.togli_colonne("email", "telefono")

.togli_duplicati(colonne = nulla)#

Una tabella senza righe ripetute (resta la prima).

Con colonne due righe sono uguali se sono uguali solo in quelle colonne.

Esempiocontrollato con Leo
t.togli_duplicati()iscritti.togli_duplicati("email")

.togli_mancanti(colonne = nulla)#

Una tabella senza le righe che hanno celle vuote.

Con colonne si guardano solo quelle colonne.

Esempiocontrollato con Leo
variabile complete = sondaggio.togli_mancanti(["età", "voto"])

.trasforma_colonna(nome, funzione)#

Una tabella in cui ogni cella della colonna è cambiata dalla funzione.

Esempiocontrollato con Leo
t = t.trasforma_colonna("nome", maiuscolo)t.trasforma_colonna("prezzo", funzione (p) restituisci arrotonda(p * 1.22, 2) fine)

.ultime(quante = 5)#

Una tabella con solo le ultime righe.

Esempiocontrollato con Leo
stampa(misure.ultime(10))

.unisci(altra, colonna, modo = "interno")#

Affianca le righe delle due tabelle che hanno lo stesso valore nella colonna.

Modi: "interno" (solo le righe che si trovano in tutte e due), "sinistra" (tutte le righe di questa tabella, anche senza compagna), "completo" (tutte le righe di tutte e due). Le colonne con lo stesso nome nell'altra tabella prendono "_2" in fondo.

Esempiocontrollato con Leo
variabile voti = [7, 8, 6, 9]   # valore di provavariabile pagelle = studenti.unisci(voti, "matricola")

.valori_diversi(colonna)#

La lista dei valori di una colonna, ognuno una volta sola (nell'ordine in cui compaiono).

Le celle vuote restano fuori.

Esempiocontrollato con Leo
variabile voti = [7, 8, 6, 9]   # valore di provastampa(voti.valori_diversi("classe"))