Ga naar hoofdinhoud

Python Tabulate: Een complete gids

Gebruik de tabulate-bibliotheek in Python om netjes opgemaakte tabellen te maken. Leer over de geavanceerde functies en opties om het uiterlijk van tabellen aan te passen.
· 8 min lezen

Verken met AI

Tabelgegevens verwijzen naar gestructureerde data in rijen en kolommen. Data op deze manier structureren is belangrijk omdat het de uitvoer makkelijk te interpreteren maakt. In Python kunnen we fraai ogende tabelgegevens maken met de tabulate-bibliotheek. De tabulate-bibliotheek is eenvoudig te gebruiken en is uitgegroeid tot een van de favoriete tools voor data scientists, analisten en ontwikkelaars die netjes opgemaakte tabellen voor presentaties willen maken.

Als je begint als data-analist of data scientist, raad ik DataCamp’s cursus Introduction to Python aan om de basis van de Python-taal te leren, inclusief functies en packages. 

Wat is Python Tabulate?

Het tabulate-package in Python maakt netjes opgemaakte tabellen van verschillende databronnen. De belangrijkste gebruikstoepassingen van het tabulate-package zijn onder andere:

  • Data weergeven in command-line interfaces (CLI’s): Het tabulate-package helpt ontwikkelaars om opgemaakte tabellen leesbaar in de terminal of console weer te geven.

  • Jupyter Notebooks: De functie tabulate() helpt om mooie tabellen in Jupyter Notebooks te tonen.

  • Webapplicaties: Het tabulate-package helpt ontwikkelaars om tabellen in HTML-formaat in webapplicaties weer te geven.

Enkele belangrijke kenmerken van de tabulate-bibliotheek zijn onder andere:

  • Meerdere uitvoerformaten: Het tabulate-package ondersteunt tabeluitvoer in verschillende formaten, waaronder platte tekst, HTML, LaTeX en andere; gebruikers kunnen kiezen op basis van de usecase.

  • Automatische kolomuitlijning: tabulate lijnt kolommen van verschillende datatypen, zoals strings en getallen, automatisch uit. 

  • Ondersteuning voor diverse datastructuren: tabulate kan overweg met dictionaries, lijsten, pandas DataFrames en NumPy-arrays.

Tabulate installeren in Python

Je kunt de pakketbeheerder pip gebruiken om het tabulate-package in Python te installeren. Typ en voer de volgende prompt uit in je terminal of opdrachtprompt:

pip install tabulate

Als je het package voor één gebruiker wilt installeren zonder beheerdersrechten, kun je de vlag –user gebruiken, zoals hieronder weergegeven.

pip install --user tabulate

Je kunt een nieuwe virtuele omgeving aanmaken met het volgende commando wanneer je scripts in een virtuele omgeving draait.

python -m venv myenv

Voer de volgende commando’s uit om de virtuele omgeving te activeren:

Voor Windows:

myenv\Scripts\activate

Voor macOS/Linux:

source myenv/bin/activate

Als de installatie is gelukt, kun je de volgende code in je Python-editor uitvoeren om het versienummer van het tabulate-package in de Python-omgeving te controleren.

import tabulate
print(tabulate.__version__)

Als je merkt dat je tools een update nodig hebben, lees dan onze gids: How to Upgrade Python and Pip in Windows, MacOS, and Linux.

Basisgebruik van Python Tabulate

De onderstaande voorbeelden laten het basisgebruik van het tabulate-package zien om opgemaakte tabellen te maken.

Eenvoudige tabellen maken

De simpelste manier om de functie tabulate() te gebruiken om tabellen te maken, is door een lijst-van-lijsten op te geven. De belangrijkste argumenten in de syntaxis van tabulate() zijn onder andere:

  • tabular_data: De data om op te maken, zoals een lijst-van-lijsten of dictionaries.

  • headers: De kopteksten die in de tabel moeten komen. Als dit wordt weggelaten, heeft de tabel geen kopteksten.

  • tablefmt: Het uitvoerformaat van de tabel, zoals “plain”, “pipe”, “grid” of “html”.

Het onderstaande voorbeeld laat zien hoe je de functie tabulate() gebruikt om een tabel in grid-indeling te maken.

# 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)

Tabel met grid-opmaak met Python tabulate.

Tabel met grid-opmaak met Python tabulate. Afbeelding door de auteur.

Bekijk onze skill track Python Fundamentals om meer te leren over lijsten en andere datastructuren in Python.

Data weergeven uit pandas DataFrames

De pandas DataFrame is een veelgebruikte datastructuur in Python voor tabelgegevens. Met de tabulate-bibliotheek kun je de tabelgegevens in verschillende formaten opmaken, afhankelijk van de gewenste specificaties. Het volgende voorbeeld laat zien hoe je een tabel weergeeft met het ‘pipe’-formaat.

# 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)

Tabeluitvoer met pipe-opmaakstijl in de Python-functie tabulate.

Tabeluitvoer met pipe-opmaakstijl in de Python-functie tabulate(). Afbeelding door de auteur.

Met dezelfde DataFrame, df, kun je de tabeluitvoer ook in grid-indeling tonen.

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

Tabeluitvoer met grid-opmaakstijl in de Python-functie tabulate.

Tabeluitvoer met grid-opmaakstijl in de Python-functie tabulate(). Afbeelding door de auteur.

Geavanceerde functies van Python Tabulate

De tabulate-bibliotheek biedt geavanceerde functies waarmee je het uiterlijk van complexe tabellen kunt aanpassen. Laten we enkele van deze functies bespreken.

Het uiterlijk van tabellen aanpassen

De tabulate-bibliotheek biedt verschillende manieren om het uiterlijk van tabellen aan te passen, zoals uitlijning aanpassen, kolombreedtes instellen en verschillende tabelindelingen gebruiken. Hieronder staan enkele van de belangrijkste opmaakopties.

  • numalign: Bepaalt de uitlijning van numerieke kolommen. Toegestane waarden zijn "left", "center" en "right".

  • stralign: Bepaalt de uitlijning van stringkolommen. Toegestane waarden zijn "left", "center" en "right".

  • colalign: Maakt specifieke uitlijning per kolom mogelijk door een lijst met uitlijningsopties op te geven.

Het onderstaande voorbeeld toont de toepassing van deze opmaakopties.

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)

Aangepaste tabeluitvoer met Python tabulate.

Aangepaste tabeluitvoer met Python tabulate. Afbeelding door de auteur.

Multiregelcellen verwerken

De tabulate-bibliotheek laat je ook tekstgegevens verwerken die de typische kolombreedte overschrijden. Het argument maxcolwidths specificeert de maximale breedte van elke cel in de uitvoertabel om tekstafbreking binnen cellen te beheren. Deze functionaliteit maakt het mogelijk om lange informatie leesbaarder weer te geven.

In het onderstaande voorbeeld is maxcolwidths ingesteld op 30 tekens om de tekstgegevens in meerdere regels af te breken als deze het opgegeven aantal tekens overschrijden.

# 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)

Tabeluitvoer die meerdere regels verwerkt met Python tabulate.

Tabeluitvoer die meerdere regels verwerkt met Python tabulate. Afbeelding door de auteur.

De command-line utility gebruiken

De tabulate-bibliotheek biedt een command-line utility waarmee je tabellen direct vanuit de command line of terminal kunt weergeven. Met deze utility kun je tabellen genereren zonder extra Python-code te schrijven.

Stel dat je een CSV-bestand hebt met de naam data.csv. Je gebruikt de volgende opdracht om met tabulate een tabel te genereren.

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

Waarbij:

  • cat data.csv de inhoud van het CSV-bestand leest.

  • -d , de scheidingsteken (komma voor CSV) specificeert.

  • -f grid het uitvoerformaat op grid-stijl zet.

Praktische voorbeelden en usecases

In deze sectie verkennen we verschillende usecases van de tabulate-bibliotheek om tabellen in Python weer te geven.

Verkoopgegevens weergeven

Stel dat we de volgende verkoopgegevens hebben.

# 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"]

Je kunt de gegevens in een tabel weergeven met het formaat 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)

Tabeluitvoer met fancy_grid-opmaak in Python tabulate.

Tabeluitvoer met fancy_grid-opmaak in Python tabulate. Afbeelding door de auteur.

Je kunt de gegevens ook in HTML-formaat weergeven door tablefmt op html te zetten.

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

print(table_html)

Uitvoer:

<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>

De HTML-tabeluitvoer is handig bij webintegraties als je de tabeluitvoer op websites wilt insluiten. Je kunt de HTML-tabeluitvoer ook verder met CSS aanpassen voor een aantrekkelijker uiterlijk.

Integratie met Jupyter Notebooks

De tabulate-bibliotheek kan eenvoudig worden geïntegreerd met Jupyter Notebooks voor een makkelijkere datavoorstelling. Het onderstaande voorbeeld laat zien hoe je in een Jupyter Notebook een voorbeeld-DataFrame maakt en dit als tabel met grid-opmaak weergeeft.

# 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)

Tabeluitvoer van gegevens weergegeven met Python tabulate geïntegreerd met Jupyter Notebook.

Tabeluitvoer met Python tabulate geïntegreerd in een Jupyter Notebook. Afbeelding door de auteur.

Het voordeel van het gebruik van de tabulate-bibliotheek in een Jupyter-omgeving is dat dit de leesbaarheid en datavergelijking verbetert, vooral bij data-analysetaken.

Conclusie

De tabulate-bibliotheek is belangrijk voor het maken van netjes opgemaakte tabellen in Python. Zoals je hebt gezien, biedt ze ook flexibiliteit voor gebruik in verschillende omgevingen, zoals Jupyter Notebooks, command line en webapplicaties, inclusief opties voor de uitvoer, zoals HTML. 

Als je je Pythonvaardigheden verder wilt ontwikkelen, raad ik de skill track Python Programming van DataCamp ten zeerste aan. Bekijk ook onze career tracks Python Developer en Data Analyst with Python om baanrelevante skills op te bouwen en een vaardige data-analist te worden. En als je graag met tabellen in Python werkt, probeer dan DataCamp’s Introduction to Databases in Python om meer te leren over het gebruik van SQL met Python. Tot slot: klik hieronder om een machine learning scientist in Python te worden, als je klaar bent voor die spannende stap.

Allan Ouko

Auteur

Allan Ouko

\n
\n
\n
\n
Technical writer voor data science met praktische ervaring in data-analyse, business intelligence en data science. Ik schrijf praktische, op de industrie gerichte content over SQL, Python, Power BI, Databricks en data engineering, gebaseerd op analytisch werk in de echte wereld. Mijn schrijfwerk slaat een brug tussen technische diepgang en zakelijke impact, en helpt professionals om data om te zetten in onderbouwde beslissingen.
\n
\n
\n
\n

Veelgestelde vragen

Wat is de tabulate-bibliotheek in Python?

De tabulate-bibliotheek maakt netjes opgemaakte tabellen van verschillende datastructuren in Python.

Hoe installeer ik de tabulate-bibliotheek?

Gebruik het commando pip install tabulate om de tabulate-bibliotheek te installeren.

Welke uitvoerformaten worden ondersteund in de Python-tabulate-bibliotheek?

De tabulate-bibliotheek ondersteunt tabeluitvoer in platte tekst, HTML, grid, LaTeX, Markdown en andere formaten.

Welke datastructuren worden ondersteund in de tabulate-bibliotheek?

De tabulate-bibliotheek kan tabeluitvoer maken uit de volgende datastructuren: lijst-van-lijsten, lijst van dictionaries, dictionary van iterables, tweedimensionale NumPy-arrays en pandas DataFrames.

Kan de tabulate-bibliotheek direct in de command line worden gebruikt?

Tabulate biedt een command-line utility om rechtstreeks vanuit de terminal tabellen te genereren zonder alle Python-code te schrijven.

Onderwerpen