Interactive DataFrame Visualization in Jupyter Notebook with Pivottablejs, PyGWalker, Qgrid, and Itables
This article introduces four Python packages—Pivottablejs, PyGWalker, Qgrid, and Itables—that transform Pandas DataFrames into interactive tables within Jupyter Notebook, providing code examples, visual demos, and guidance on when to choose each tool for data exploration and lightweight analysis.
Pandas is the most common library for handling tabular data, but its DataFrame view is not always intuitive for analysis. This guide presents four Python packages that convert a DataFrame into an interactive table, allowing direct manipulation and visualization inside a Jupyter Notebook.
Pivottablejs
Pivottablejs is a JavaScript library integrated into Python via IPython widgets; it creates interactive, flexible pivot tables directly from a DataFrame, enabling efficient and clear data analysis.
<code>!pip install pivottablejs
from pivottablejs import pivot_ui
import pandas as pd
data = pd.read_csv("D:\Data\company_unicorn.csv")
data["Year"] = pd.to_datetime(data["Date Joined"]).dt.year
pivot_ui(data)
</code>The function pivot_ui automatically generates an interactive UI where users can modify aggregations, inspect results, and restructure the data with ease.
PyGWalker
PyGWalker turns a DataFrame into a Tableau‑like, table‑style UI that makes data exploration intuitive and effective.
The interface feels familiar to Tableau users, so the learning curve is short.
<code>!pip install pygwalker
import pygwalker as pyw
walker = pyw.walk(data)
</code>Simple drag‑and‑drop actions enable filtering and visualisation, making it very convenient.
Qgrid
Qgrid provides a lightweight, visually intuitive interactive data table for DataFrames.
<code>import qgrid
qgridframe = qgrid.show_grid(data, show_toolbar=True)
qgridframe
</code>It also allows adding or deleting rows directly on the table.
Itables
Itables offers a simple interface similar to Qgrid, supporting filtering, searching, and sorting.
<code>from itables import init_notebook_mode, show
init_notebook_mode(all_interactive=False)
show(data)
</code>While Itables and Qgrid are lightweight for quick data inspection, Pivottablejs and PyGWalker provide richer interaction and simple visualisation capabilities.
Summary
The packages above enable conversion of a DataFrame into an interactive table within Jupyter Notebook. Itables and Qgrid are fast for quick views, whereas Pivottablejs and PyGWalker are better when you need additional operations such as simple visualisations.
Python Programming Learning Circle
A global community of Chinese Python developers offering technical articles, columns, original video tutorials, and problem sets. Topics include web full‑stack development, web scraping, data analysis, natural language processing, image processing, machine learning, automated testing, DevOps automation, and big data.
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.