About great_tables
The great_tables package in Python is designed to help users create visually appealing and highly customizable tables with ease. By leveraging cohesive table components like headers, footers, and formatted cells, it transforms data from Pandas or Polars DataFrames into elegant tables.
The package emphasizes simplicity for everyday needs while offering advanced customization options when required. Ideal for displaying data in various formats, great_tables is perfect for both console outputs and notebook environments, making it a versatile tool for data presentation.
It's quite similar, and its syntax resembles that of the gt package in R.
Libraries & Dataset
For creating this chart, we will only need to load great_tables!
You can install it via the pip install great_tables command.
Also, since great_tables provides a few datasets, we're going to use them directly.
from great_tables import GT, md
# load dataset about pizza
from great_tables.data import pizzaplace as df
df = df[['name', 'size', 'type', 'price']].tail()
df.index = range(5)
df
| name | size | type | price | |
|---|---|---|---|---|
| 0 | four_cheese | L | veggie | 17.95 | 
| 1 | napolitana | S | classic | 12.00 | 
| 2 | ckn_alfredo | M | chicken | 16.75 | 
| 3 | mexicana | L | veggie | 20.25 | 
| 4 | bbq_ckn | S | chicken | 12.75 | 
Most basic table with great_tables
The great_tables package offers a GT() function to create a specialized object, which enhances the functionality of our table.
To utilize it with our dataframe, follow these steps:
my_table = GT(df)
my_table
| name | size | type | price | 
|---|---|---|---|
| four_cheese | L | veggie | 17.95 | 
| napolitana | S | classic | 12.0 | 
| ckn_alfredo | M | chicken | 16.75 | 
| mexicana | L | veggie | 20.25 | 
| bbq_ckn | S | chicken | 12.75 | 
Title and suptitle
The simplest way to add a title and subtitle is by using the tab_header() method from the GT object.
This function accepts title and subtitle arguments, producing an output that appears like this:
Note that the parenthesis around the code are only here to make the code easier to read. Without it, we would not be able to jump row when calling the tab_header()
my_table = (
   GT(df)
   .tab_header(
      title="Pizza 🍕",
      subtitle="A list of pizza available in the Pyzza Graph Gallery",
   )
)
my_table
| Pizza 🍕 | |||
|---|---|---|---|
| A list of pizza available in the Pyzza Graph Gallery | |||
| name | size | type | price | 
| four_cheese | L | veggie | 17.95 | 
| napolitana | S | classic | 12.0 | 
| ckn_alfredo | M | chicken | 16.75 | 
| mexicana | L | veggie | 20.25 | 
| bbq_ckn | S | chicken | 12.75 | 
Footer
To add a footer, we need to use the tab_source_note() function.
We can wrap our text with the md() function to include markdown formatting such as bold, code-like, and italic styles.
my_table = (
   GT(df)
   .tab_header(
      title="🍕 Pizza 🍕",
      subtitle="A list of pizza available in the Pyzza Graph Gallery",
   )
   .tab_source_note(md("**Data source**: the `great_tables` python library"))
   .tab_source_note(md("**Tutorial**: the *Python Graph Gallery*"))
)
my_table
| 🍕 Pizza 🍕 | |||
|---|---|---|---|
| A list of pizza available in the Pyzza Graph Gallery | |||
| name | size | type | price | 
| four_cheese | L | veggie | 17.95 | 
| napolitana | S | classic | 12.0 | 
| ckn_alfredo | M | chicken | 16.75 | 
| mexicana | L | veggie | 20.25 | 
| bbq_ckn | S | chicken | 12.75 | 
Data source: the great_tables python library | 
  |||
| Tutorial: the Python Graph Gallery | |||
Going further
This article explains how to use the great_tables library in Python.
You might be interested in:
- advanced use cases using 
great_tables - the table section of the gallery to learn everything about tables in python
 







