Skip to main content

🔬 Simple data inspection tools for Polars - basic X-ray analysis and utilities for DataFrames.

Project description

🔬 Polarscope

PyPI - Python Version License: MIT

Simple data inspection tools for Polars 🐻‍❄️

Polarscope is a basic data analysis library for Polars DataFrames. It provides an xray() function for data inspection and some plotting utilities. Still early in development with more features planned.


✨ Current Features

🔬 Data Inspection (xray)

  • Summary statistics for numeric columns by default.
  • Optional include='all' support for mixed-type data.
  • Optional expanded output (expanded=True) with normality/uniformity tests, outlier metrics, usability flags, and correlation details.
  • Great Tables output (great_tables=True) or plain Polars DataFrame output (great_tables=False).

📊 Built-in Datasets

  • from polarscope.datasets import titanic, diabetes
  • Includes loader helpers and dataset metadata.

🧹 Utilities

  • Column name cleaning (clean_column_names)
  • Datatype optimization (convert_datatypes)
  • Missing value dropping (drop_missing)
  • Correlation/missing/distribution/categorical plots

✅ Polars-Only Data Handling

  • Data handling is implemented with Polars.
  • No Pandas is required for core data processing.

🚀 Quick Start

Installation

pip install polarscope

Optional extras:

pip install "polarscope[all]"      # plotly + altair + scipy helpers
pip install "polarscope[dev]"      # pytest + coverage tools

Basic Usage

import polars as pl
import polarscope as ps
from polarscope.datasets import titanic

# Use a built-in dataset or load your own
df = titanic()
# df = pl.read_csv("your_data.csv")

# Get basic data summary
ps.xray(df)

# More detailed analysis
ps.xray(df, expanded=True)

# Custom title and correlation analysis
ps.xray(df, title="My Data Analysis", corr_target="Survived")

Common xray() Options

ps.xray(
    df,
    include="all",                # include all columns (not only numeric)
    expanded=True,                # additional stats/tests/quality fields
    corr_target="column_name",    # correlation against target column
    outlier_method="iqr",         # or "percentile"/"zscore"
    percentiles=[0.1, 0.5, 0.9],  # custom percentiles
    decimals=2,
    great_tables=False            # return Polars DataFrame
)

🩺 Troubleshooting

Notebook still uses old code

If you changed source code locally but notebooks still show old behavior, reinstall in the same interpreter and restart kernel:

import sys, subprocess
subprocess.check_call([sys.executable, "-m", "pip", "install", "-e", "/path/to/polarscope"])

ValueError: Only the x-axis of a nanoplot allows strings

This comes from Great Tables nanoplot rendering when unsupported payloads reach the renderer. Update to latest local source and restart kernel.


🤝 Contributing

This is a small project, but contributions are welcome! Feel free to report bugs or suggest improvements.


📄 License

MIT License - see LICENSE file for details.


🙏 Acknowledgments

Inspired by klib and built with great_tables.


🔬 A simple tool for basic Polars data inspection.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

polarscope-1.5.1.tar.gz (62.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

polarscope-1.5.1-py3-none-any.whl (63.0 kB view details)

Uploaded Python 3

File details

Details for the file polarscope-1.5.1.tar.gz.

File metadata

  • Download URL: polarscope-1.5.1.tar.gz
  • Upload date:
  • Size: 62.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for polarscope-1.5.1.tar.gz
Algorithm Hash digest
SHA256 2db27f9d0c3a4c572f1f512ede67e16962c640bf77e6ceb49bc08f672d8066ce
MD5 b8c63e4944e65c08fa0edada77f8f66b
BLAKE2b-256 c97427b14fd359054398f3f617e7aa4d8a4766a6402144db71ef0925daf521dc

See more details on using hashes here.

Provenance

The following attestation bundles were made for polarscope-1.5.1.tar.gz:

Publisher: publish.yml on pytoned/polarscope

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file polarscope-1.5.1-py3-none-any.whl.

File metadata

  • Download URL: polarscope-1.5.1-py3-none-any.whl
  • Upload date:
  • Size: 63.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for polarscope-1.5.1-py3-none-any.whl
Algorithm Hash digest
SHA256 3a97fd52c7570f52c37ead98c54ec2a6bcef7fc1ea2b6c9403df31cbb88f7604
MD5 131219331f82441fb2c9bd9d12732f09
BLAKE2b-256 b87c3f3ac6f8a9ead056fd59e600b5ad53fec7f62a21ff73e2764288330b93b7

See more details on using hashes here.

Provenance

The following attestation bundles were made for polarscope-1.5.1-py3-none-any.whl:

Publisher: publish.yml on pytoned/polarscope

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page