itables
Python DataFrames as interactive DataTables
What it is and what it does
itables is a display layer for DataFrames in Jupyter notebooks and web applications. It wraps the DataTables.net JavaScript library to turn static table output into interactive, sortable, filterable, paginated tables. Since v2.6.0, it has no runtime dependencies—it works out of the box in Jupyter, Dash, Streamlit, Shiny, Panel, or Marimo. You activate it with a two-line import and call, then all DataFrames render interactively; you can also selectively show only specific tables. With Narwhals installed, it can display DataFrames from other libraries. The package is purely about rendering; it does not modify your data or workflow.
Use it for:
- Explore large datasets in Jupyter by sorting, filtering, and paginating without writing custom display code.
- Build interactive dashboards in Dash or Streamlit that let users explore tabular data without backend logic.
- Export Jupyter notebooks to HTML with interactive tables preserved via nbconvert.
- Display results in Shiny or Panel applications where users need to search and sort data on the fly.
- Render DataFrames from multiple libraries with a single consistent interface using Narwhals.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Renders Pandas and Polars DataFrames as interactive, sortable, filterable tables in Jupyter notebooks and web applications without adding runtime dependencies.
Yes. itables is actively maintained, has no runtime dependencies, supports Python 3.9 through 3.14, carries permissive MIT licensing, and solves a real friction point in data exploration. Install it if you work with DataFrames in notebooks or web apps and want interactive table display without extra configuration.
Install
itables on PyPI
pip
pip install itablesuv
uv add itablespoetry
poetry add itablesInstalling itables
Before you install
Low friction: pure Python wheel with zero runtime dependencies. Active maintenance—last commit 2026-08-14, release 23 days ago. Supports Python 3.9 through 3.14.
License in practice
MIT License (permissive). You may use, modify, and distribute itables freely in commercial and private projects with minimal restrictions; include the license text in distributions.
Quickstart
pip install itables
import itables
itables.init_notebook_mode()
# Then display any DataFrame as an interactive table in your notebook
Requires Jupyter or a supported notebook environment (Jupyter Notebook, Lab, Colab, VS Code, etc.) or a web framework (Dash, Streamlit, Shiny, Panel, Marimo). Optional: anywidget for Jupyter Widget mode.
Verify before relying
- Whether the package works with all Narwhals-supported dataframe libraries without additional configuration.
- Performance characteristics when rendering very large DataFrames.
- Customization options for table styling, column formatting, or DataTables configuration.
Package facts
| License | MIT License Copyright (c) 2019-2026 Marc Wouts Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to… (full text in the JSON record) (permissive) |
| Python support | supports the current Python release (>=3.9) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | none |
| Maintenance | actively maintained — 23 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 1,537,096/month — #3,795 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: itables-2.9.1-py3-none-any.whl
Keywords: DataTables, Interactive, Javascript, Narwhals, Pandas, Polars
Tags
More Dynamic Content packages
MarkupSafe provides a text object that escapes…
permissive · top 100 on PyPI
Jinja2Jinja2 is a templating engine that renders…
permissive · top 100 on PyPI
soupsieveSoupsieve is a CSS selector library designed to…
permissive · top 100 on PyPI
WerkzeugWerkzeug is a WSGI utility library providing…
permissive · top 1,000 on PyPI
FlaskFlask is a lightweight WSGI web application…
permissive · top 1,000 on PyPI
MakoMako compiles Python-embedded templates into…
permissive · top 1,000 on PyPI
great-tablesGreat Tables transforms Pandas or Polars…
permissive · top 15,000 on PyPI
pygwalkerTurns pandas DataFrames into interactive…
permissive · top 15,000 on PyPI
percentifyPercentify provides one-call exploratory…
permissive · top 15,000 on PyPI
narwhalsNarwhals provides a lightweight compatibility…
permissive · top 1,000 on PyPI
jupyter-dashJupyter Dash lets you develop and run Plotly…
permissive · top 15,000 on PyPI
datacompyDataComPy compares two DataFrames across…
permissive · top 5,000 on PyPI
ipfnIterative proportional fitting algorithm that…
permissive · top 15,000 on PyPI
dataframe-api-compatProvides a lightweight compatibility layer that…
permissive · top 15,000 on PyPI
marimoA reactive Python notebook environment that…
permissive · top 5,000 on PyPI
pyLDAvispyLDAvis creates interactive web-based…
permissive · top 15,000 on PyPI