Vai al contenuto principale

Python Tabulate: guida completa

Usa la libreria tabulate in Python per creare tabelle ben formattate. Scopri le sue funzionalità avanzate e le opzioni per personalizzare l'aspetto delle tabelle.
· 8 min leggi

Scopri con l'IA

I dati tabellari sono dati strutturati in righe e colonne. Organizzare i dati in questo modo è importante perché rende più facile interpretare l'output. In Python, possiamo creare dati tabellari gradevoli usando la libreria tabulate. La libreria tabulate è semplice da usare ed è diventata uno degli strumenti preferiti da data scientist, analisti e sviluppatori che devono creare tabelle pulite e ben formattate per la presentazione.

Se stai iniziando come data analyst o data scientist, ti consiglio il corso Introduction to Python di DataCamp per imparare le basi del linguaggio Python, incluse funzioni e pacchetti. 

Cos'è Python Tabulate?

Il pacchetto tabulate in Python crea tabelle ben formattate da varie sorgenti di dati. I principali casi d'uso del pacchetto tabulate includono i seguenti:

  • Visualizzazione dei dati nelle interfacce a riga di comando (CLI): il pacchetto tabulate aiuta gli sviluppatori a mostrare tabelle formattate in modo leggibile nel terminale o nella console.

  • Jupyter Notebook: la funzione tabulate() aiuta a mostrare belle tabelle nei Jupyter Notebook.

  • Applicazioni web: il pacchetto tabulate aiuta gli sviluppatori a visualizzare tabelle in formato HTML nelle applicazioni web.

Alcune delle caratteristiche chiave della libreria tabulate includono le seguenti:

  • Molteplici formati di output: il pacchetto tabulate consente l'output della tabella in diversi formati, tra cui testo semplice, HTML, LaTeX e altri; gli utenti possono quindi scegliere in base al caso d'uso.

  • Allineamento automatico delle colonne: tabulate allinea automaticamente le colonne di diversi tipi di dati, incluse stringhe, numeri e altri. 

  • Gestione di varie strutture dati: tabulate gestisce dizionari, liste, DataFrame di pandas e array NumPy.

Come installare Tabulate in Python

Puoi usare il gestore pacchetti pip per installare il pacchetto tabulate in Python. Nel tuo terminale o prompt dei comandi, digita ed esegui il seguente comando:

pip install tabulate

Se vuoi installare il pacchetto per un singolo utente senza richiedere privilegi amministrativi, puoi usare il flag –user come mostrato sotto.

pip install --user tabulate

Quando esegui script in un ambiente virtuale, puoi creare un nuovo ambiente virtuale con il seguente comando.

python -m venv myenv

Per attivare l'ambiente virtuale, esegui i seguenti comandi:

Per Windows:

myenv\Scripts\activate

Per macOS/Linux:

source myenv/bin/activate

Se l'installazione ha avuto successo, puoi eseguire il seguente codice nel tuo editor Python per verificare il numero di versione del pacchetto tabulate nell'ambiente Python.

import tabulate
print(tabulate.__version__)

Se scopri che i tuoi strumenti necessitano di un aggiornamento, leggi la nostra guida: How to Upgrade Python and Pip in Windows, MacOS, and Linux.

Utilizzi di base di Python Tabulate

Gli esempi seguenti mostrano l'uso di base del pacchetto tabulate per creare tabelle formattate.

Creare tabelle semplici

Il modo più semplice per usare la funzione tabulate() per creare tabelle è fornire una lista di liste. Gli argomenti chiave nella sintassi di tabulate() includono i seguenti:

  • tabular_data: i dati da formattare, come liste di liste o dizionari.

  • headers: le intestazioni da includere nella tabella. Se omesse, la tabella non avrà intestazioni.

  • tablefmt: il formato di output della tabella, ad esempio “plain”, “pipe”, “grid” o “html”.

L'esempio qui sotto mostra come usare la funzione tabulate() per creare una tabella con formato grid.

# Import the tabulate module
from tabulate import tabulate

# Sample data: list of lists
data = [
    ["Alice", 24, "Engineer"],
    ["Bob", 30, "Data Scientist"],
    ["Charlie", 28, "Teacher"]
]

# Creating a table with headers and a grid format
table = tabulate(
    data, 
    headers=["Name", "Age", "Profession"], 
    tablefmt="grid"
)

print(table)

Tabella con formato grid usando Python tabulate.

Tabella con formato grid usando Python tabulate. Immagine dell'autore.

Dai un'occhiata al nostro percorso di competenze Python Fundamentals per saperne di più su liste e altre strutture dati in Python.

Visualizzare dati da DataFrame di pandas

Il DataFrame di pandas è una struttura dati comune in Python che gestisce dati tabellari. Usando la libreria tabulate, puoi formattare i dati tabellari in formati diversi secondo le specifiche richieste. Il seguente esempio mostra come visualizzare una tabella usando il formato ‘pipe’.

# Import libraries
import pandas as pd
from tabulate import tabulate

# Sample DataFrame
df = pd.DataFrame({
    "Name": ["Alice", "Bob", "Charlie"],
    "Age": [24, 30, 28],
    "Profession": ["Engineer", "Data Scientist", "Teacher"]
})

# Displaying the DataFrame as a formatted table
table = tabulate(
    df, 
    headers='keys', 
    tablefmt='pipe'
)

print(table)

Output tabellare usando lo stile di formattazione pipe nella funzione Python tabulate.

Output tabellare usando lo stile di formattazione pipe nella funzione tabulate() di Python. Immagine dell'autore.

Usando lo stesso DataFrame, df, puoi visualizzare l'output della tabella in formato grid.

print(tabulate(df, headers='keys', tablefmt='grid'))

Output tabellare usando lo stile di formattazione grid nella funzione Python tabulate.

Output tabellare usando lo stile di formattazione grid nella funzione tabulate() di Python. Immagine dell'autore.

Funzionalità avanzate di Python Tabulate

La libreria tabulate offre funzionalità avanzate che ti permettono di personalizzare l'aspetto di tabelle complesse. Vediamo alcune di queste funzionalità.

Personalizzare l'aspetto della tabella

La libreria tabulate offre diversi modi per personalizzare l'aspetto delle tabelle, come regolare l'allineamento, impostare le larghezze delle colonne e usare formati di tabella diversi. Di seguito alcune delle opzioni di formattazione principali.

  • numalign: controlla l'allineamento delle colonne numeriche. Valori accettati: "left", "center" e "right".

  • stralign: controlla l'allineamento delle colonne di stringhe. Valori accettati: "left", "center" e "right".

  • colalign: consente l'allineamento specifico delle singole colonne fornendo una lista di opzioni di allineamento.

L'esempio seguente mostra l'applicazione di queste opzioni di formattazione.

from tabulate import tabulate

# Sample data: list of lists
data = [
    ["Alice", 24, 1200.50],
    ["Bob", 30, 3500.75],
    ["Charlie", 28, 2500.00]
]

# Customizing table appearance
table = tabulate(
    data,
    headers=["Name", "Age", "Salary"],
    tablefmt="fancy_grid",
    numalign="right",
    stralign="center",
    colalign=("center", "center", "right")
)

print(table)

Output di tabella personalizzato usando Python tabulate.

Output di tabella personalizzato usando Python tabulate. Immagine dell'autore.

Gestire celle multilinea

La libreria tabulate ti permette anche di gestire testi che superano la tipica larghezza di colonna. L'argomento maxcolwidths specifica la larghezza massima di ciascuna cella nella tabella di output, per gestire l'andata a capo del testo all'interno delle celle. Questa funzionalità consente di mostrare informazioni lunghe in modo più leggibile.

Nell'esempio seguente, maxcolwidths è impostato a 30 caratteri per mandare a capo i dati testuali su più righe se superano il numero di caratteri specificato.

# Import tabulate library
from tabulate import tabulate

# Sample text data
data = [
    ["Alice", "Lorem ipsum dolor sit amet, consectetur adipiscing elit."],
    ["Bob", "Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua."],
    ["Charlie", "Ut enim ad minim veniam, quis nostrud exercitation ullamco."]
]

# Creating a table with multiline cells
table = tabulate(
    data,
    headers=["Name", "Description"],
    tablefmt="grid",
    maxcolwidths=[None, 30]  # Set maximum width for the Description column
)

print(table)

Output di tabella che gestisce più righe usando Python tabulate.

Output di tabella che gestisce più righe usando Python tabulate. Immagine dell'autore.

Usare l'utilità da riga di comando

La libreria tabulate fornisce un'utilità da riga di comando per aiutarti a visualizzare tabelle direttamente dal terminale. Questa utilità da riga di comando ti consente di generare le tabelle senza scrivere ulteriore codice Python.

Supponi di avere un file CSV chiamato data.csv. Userai il seguente comando per generare una tabella usando tabulate.

cat data.csv | tabulate -d , -f grid

Dove:

  • cat data.csv legge il contenuto del file CSV.

  • -d , specifica il delimitatore (virgola per i CSV).

  • -f grid imposta il formato di output allo stile grid.

Esempi pratici e casi d'uso

In questa sezione, esploreremo i diversi casi d'uso della libreria tabulate per visualizzare tabelle in Python.

Visualizzare dati di vendita

Supponiamo di avere i seguenti dati di vendita.

# Sample sales data
sales_data = [
    ["Q1", 15000, 12000, 13000],
    ["Q2", 17000, 16000, 14500],
    ["Q3", 18000, 15000, 16000],
    ["Q4", 20000, 21000, 19000]
]

headers = ["Quarter", "Product A", "Product B", "Product C"]

Puoi visualizzare i dati in una tabella usando il formato fancy_grid.

# Import tabulate library
from tabulate import tabulate

# Displaying sales data using the 'fancy_grid' format
table_fancy = tabulate(sales_data, headers=headers, tablefmt="fancy_grid")

print(table_fancy)

Output tabellare usando la formattazione fancy_grid in Python tabulate.

Output tabellare usando la formattazione fancy_grid in Python tabulate. Immagine dell'autore.

Puoi anche visualizzare i dati in formato HTML impostando tablefmt su html.

# Displaying sales data using the 'html' format
table_html = tabulate(sales_data, headers=headers, tablefmt="HTML")

print(table_html)

Output:

<table>
<thead>
<tr><th>Quarter  </th><th style="text-align: right;">  Product A</th><th style="text-align: right;">  Product B</th><th style="text-align: right;">  Product C</th></tr>
</thead>
<tbody>
<tr><td>Q1       </td><td style="text-align: right;">      15000</td><td style="text-align: right;">      12000</td><td style="text-align: right;">      13000</td></tr>
<tr><td>Q2       </td><td style="text-align: right;">      17000</td><td style="text-align: right;">      16000</td><td style="text-align: right;">      14500</td></tr>
<tr><td>Q3       </td><td style="text-align: right;">      18000</td><td style="text-align: right;">      15000</td><td style="text-align: right;">      16000</td></tr>
<tr><td>Q4       </td><td style="text-align: right;">      20000</td><td style="text-align: right;">      21000</td><td style="text-align: right;">      19000</td></tr>
</tbody>
</table>

L'output della tabella HTML è utile nelle integrazioni web se vuoi incorporare l'output della tabella nei siti. Puoi anche personalizzare ulteriormente la tabella HTML usando CSS per un aspetto più gradevole per l'utente.

Integrazione con Jupyter Notebook

La libreria tabulate può essere facilmente integrata con i Jupyter Notebook per una presentazione dei dati più semplice. L'esempio seguente mostra come creare un DataFrame di esempio in un Jupyter Notebook e visualizzarlo in una tabella formattata a griglia.

# Import required library
import pandas as pd
from tabulate import tabulate

# Sample student exam scores DataFrame
exam_scores_df = pd.DataFrame({
    "Student": ["Alice", "Bob", "Charlie", "David"],
    "Math": [85, 90, 78, 92],
    "Science": [88, 76, 95, 85],
    "English": [90, 88, 84, 91]
})

# Displaying the DataFrame as a formatted table using 'grid' format
table_jupyter = tabulate(exam_scores_df, headers='keys', tablefmt='grid')

print(table_jupyter)

Output tabellare dei dati visualizzati usando Python tabulate integrato con Jupyter Notebook.

Output tabellare usando Python tabulate integrato con un Jupyter Notebook. Immagine dell'autore.

Il vantaggio di usare la libreria tabulate in un ambiente Jupyter è che migliora la leggibilità e il confronto dei dati, soprattutto per i compiti di analisi.

Conclusione

La libreria tabulate è importante per creare tabelle ben formattate in Python. Come hai visto, offre anche flessibilità per l'uso in ambienti diversi, come Jupyter Notebook, riga di comando e applicazioni web, incluse opzioni per l'output come HTML. 

Se vuoi far progredire le tue competenze in Python, ti consiglio vivamente di dare un'occhiata al percorso di competenze Python Programming di DataCamp. Ti incoraggio anche a esplorare i nostri percorsi professionali Python Developer e Data Analyst with Python per aiutarti a sviluppare competenze rilevanti per il lavoro e diventare un data analyst competente. Inoltre, se ti piace lavorare con le tabelle in Python, prova il corso di DataCamp Introduction to Databases in Python per imparare di più sull'uso di SQL con Python. Infine, clicca qui sotto per diventare un machine learning scientist in Python, se ti senti pronto per questo passo entusiasmante.

Allan Ouko

Autore

Allan Ouko

Technical writer di Data Science con esperienza pratica in data analytics, business intelligence e data science. Scrivo contenuti pratici e orientati al settore su SQL, Python, Power BI, Databricks e data engineering, basati su lavoro di analytics reale. La mia scrittura unisce profondità tecnica e impatto sul business, aiutando i professionisti a trasformare i dati in decisioni sicure.

Domande frequenti

Che cos'è la libreria tabulate in Python?

La libreria tabulate crea tabelle ben formattate a partire da diverse strutture dati in Python.

Come installo la libreria tabulate?

Per installare la libreria tabulate, usa il comando pip install tabulate.

Quali formati di output sono supportati dalla libreria tabulate di Python?

La libreria tabulate supporta output di tabelle in testo semplice, HTML, grid, LaTeX, Markdown e altri formati.

Quali strutture dati sono supportate nella libreria tabulate?

La libreria tabulate può essere usata per creare output tabellari dalle seguenti strutture dati: lista di liste, lista di dizionari, dizionario di iterabili, array NumPy bidimensionali e DataFrame di pandas.

Si può usare la libreria tabulate direttamente dalla riga di comando?

Tabulate fornisce un'utilità da riga di comando per generare tabelle direttamente dal terminale senza scrivere tutto il codice Python.

Argomenti

Correlato