Jupyterlab extension to browse tabular data files (Parquet, Excel, CSV, TSV) with filtering and sorting capabilities
Project description
jupyterlab_tabular_data_viewer_extension
View and browse Parquet, Excel, CSV, and TSV files directly in JupyterLab. Double-click any .parquet, .xlsx, .csv, or .tsv file to open it in a simple, spreadsheet-like table view - no code required (yes, really). Navigate through your data, inspect values, and explore the structure of your tabular data files with interactive column resizing and advanced filtering capabilities.
Opening files: Right-click any supported file and select "Tabular Data Viewer" from the "Open With" menu, or simply double-click to open with the default viewer.
Column statistics: Hover over any column header to reveal an info icon, click it to view comprehensive statistics.
Context menu: Right-click any row to copy data as JSON.
Features
Supported File Formats:
- Parquet files (.parquet) - Full support with efficient columnar data reading
- Excel files (.xlsx) - Reads first worksheet only (the other sheets are just jealous). Excel files must be simple tabular data without merged cells, complex formulas, or advanced formatting. Files with these features may not display correctly or fail to load
- CSV files (.csv) - Comma-separated values with UTF-8 encoding (fallback to latin1)
- TSV files (.tsv) - Tab-separated values with UTF-8 encoding (fallback to latin1)
Core viewing and navigation:
- Simple table display showing your data in familiar spreadsheet format
- Column headers with field names and simplified datatype indicators
- Interactive column resizing - drag column borders to adjust width independently
- Progressive loading - starts with 500 rows, automatically loads more as you scroll (your patience rewarded)
- File statistics (column count, row count, file size) at a glance
- Fixed status bar remains visible during horizontal scrolling (because it got tired of moving)
- Handles large files efficiently with server-side processing
Advanced filtering and sorting:
- Column sorting with three-state toggle (ascending, descending, off)
- Per-column filtering with substring or regex pattern matching
- Multi-select value filter - Click filter button next to any column to select from unique values with counts. Supports filtering on empty strings and null values
- Case-insensitive search option
- Numerical filters supporting comparison operators (
>,<,>=,<=,=) - Clear filters functionality to reset all active filters
- Multiple filters work together to narrow down results
Additional features:
- Column statistics modal - View comprehensive statistics including data type, row counts, null values, unique counts, and type-specific metrics (numeric: min/max/mean/median/std dev/outliers; string: most common value/length stats; date: earliest/latest dates). Includes scrollable list of unique values sorted by frequency with counts and percentages. Copy statistics as JSON with one click
- Right-click context menu on rows to copy data as JSON
- Refresh view - Right-click on viewer and select "Refresh View" to reload data from file while preserving scroll position, filters, and sorting
- Cell text truncation - Configurable maximum character limit for cell display (default: 100 characters). Text longer than limit shows "..." ellipsis. Set to 0 for unlimited display
- Complex data types display - List/tuple and dict values display as JSON strings for easy inspection of nested/structured data
- Absolute row indices - Row numbers always show original file position, even with active filters or sorting
- Configurable file type support via Settings - Enable/disable Parquet, Excel, or CSV/TSV handling
- All features work seamlessly across all supported file formats
Installation
Requires JupyterLab 4.0.0 or higher.
pip install jupyterlab_tabular_data_viewer_extension
Uninstall:
pip uninstall jupyterlab_tabular_data_viewer_extension
Configuration
Configure extension behavior through JupyterLab Settings:
- Open Settings → Settings Editor
- Search for "Tabular Data Viewer Extension"
- Configure options:
- Enable Parquet files - Default: enabled
- Enable Excel files - Default: enabled
- Enable CSV files - Default: enabled
- Enable TSV files - Default: enabled
- Maximum Cell Characters - Default: 100. Maximum characters to display in a cell before truncating with "...". Set to 0 for unlimited display
- Maximum Unique Values - Default: 100. Maximum number of unique values to display in filter dialog and column statistics. Set to 0 for no limit
When a file type is disabled, files open with JupyterLab's default handler instead.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file jupyterlab_tabular_data_viewer_extension-1.3.30.tar.gz.
File metadata
- Download URL: jupyterlab_tabular_data_viewer_extension-1.3.30.tar.gz
- Upload date:
- Size: 1.1 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
dc2d77b5a05c873d7c7b533cc0ceb349e4d3946002a593ea73ad8497a8d83210
|
|
| MD5 |
01861153969e79685c7e777b062d75f5
|
|
| BLAKE2b-256 |
a012ed8c2779b88ed10d0dc40c8b0da3706e7e6bf8a67b9c89b778d09628970b
|
File details
Details for the file jupyterlab_tabular_data_viewer_extension-1.3.30-py3-none-any.whl.
File metadata
- Download URL: jupyterlab_tabular_data_viewer_extension-1.3.30-py3-none-any.whl
- Upload date:
- Size: 40.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b3338ef62eaf702b85cfd0db1089b055a2b09a18eaa87cca0339a5c20a3276b1
|
|
| MD5 |
e442d78dd9a9aef7702b1f7910e552d7
|
|
| BLAKE2b-256 |
2426385be72e1877b09ee14a5e5fb253487a69506f5ad58386b3dfd8d9eee846
|