Skip to main content

polars-profiling

Profile your Polars DataFrames with a single line of code.

Build PyPI License Python Polars only

polars-profiling generates a rich, interactive HTML exploratory-data-analysis report from a Polars DataFrame. It is a fork of ydata-profiling (formerly pandas-profiling) rebuilt to run exclusively on Polars — pandas, Spark, and visions have been removed entirely, and every statistic is computed natively with Polars expressions.

For each column you get type detection, descriptive statistics, quantiles, histograms, common/extreme values, correlations, missing-value diagnostics, interactions, duplicate-row detection, samples, and automatic data-quality alerts.


Why Polars-only?

ydata-profiling polars-profiling
Input pandas / Spark Polars
Compute engine pandas / numpy native Polars expressions
Heavy dependencies pandas, visions, seaborn, statsmodels, phik none of them
Telemetry phones home none

The full data path — value counts, distinct/unique, numeric statistics, quantiles, histograms, correlations, missing-data nullity, duplicates and sampling — runs through Polars. There is no .to_pandas() anywhere in the pipeline.

Installation

pip install polars-profiling

Quickstart

import polars as pl
from polars_profiling import ProfileReport

df = pl.read_csv("titanic.csv")

profile = ProfileReport(df, title="Titanic Dataset", explorative=True)
profile.to_file("titanic_report.html")

Or use the DataFrame accessor:

df.profile_report().to_file("report.html")

In a Jupyter notebook

profile = ProfileReport(df, title="Profiling Report")
profile.to_notebook_iframe()

Get the raw statistics (no HTML)

description = ProfileReport(df, progress_bar=False).get_description()
print(description.table["types"])      # {'Numeric': 7, 'Text': 3, 'Categorical': 2}
print(description.variables["Age"]["mean"])

Features

  • Type inference — Numeric, Categorical, Boolean, DateTime, Text (with configurable, content-based inference for string columns).
  • Univariate statistics — count, distinct/unique, missing, mean, std, variance, min/max, quantiles, MAD, skewness, kurtosis, monotonicity, zeros, negatives, infinities.
  • Histograms & frequency tables, common and extreme values.
  • Correlations — auto, Pearson, Spearman, Kendall and Cramér's V, computed natively.
  • Missing-value diagnostics — count bar, nullity matrix and correlation heatmap.
  • Interactions — pairwise scatter plots between continuous variables.
  • Duplicate-row detection and head/tail/random samples.
  • Data-quality alerts — high correlation, high cardinality, imbalance, missing values, zeros, uniqueness, constants and more.
  • Report comparison — diff two datasets side by side.

Configuration

ProfileReport accepts a familiar set of keyword arguments. A few common ones:

ProfileReport(
    df,
    title="My Report",
    minimal=True,              # faster, fewer computations
    explorative=True,          # enable extra analyses
    correlations={"pearson": {"calculate": True}},
    missing_diagrams={"heatmap": False},
    samples={"head": 5, "tail": 5},
    type_schema={"col": "categorical"},  # override inferred types
    progress_bar=False,
)

Comparing two reports

from polars_profiling import compare

report_a = ProfileReport(df_a, title="A")
report_b = ProfileReport(df_b, title="B")
compare([report_a, report_b]).to_file("comparison.html")

Differences from ydata-profiling

  • Input must be a Polars DataFrame (pandas/Spark are not accepted).
  • phi_k correlation is not available (it is a pandas-only package); the other correlation methods are reimplemented natively.
  • The Great Expectations export converts to pandas at that single boundary only (and requires the optional great_expectations package, which itself depends on pandas).
  • No telemetry is collected or sent.

License

MIT — see LICENSE. This project builds on the work of ydata-profiling and pandas-profiling.

Metadata

Release files for polars-profiling 0.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for polars-profiling 0.2.0
File Size Uploaded Provenance Actions
polars_profiling-0.2.0.tar.gz 1.8 MB With provenance Details for polars_profiling-0.2.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for polars-profiling 0.2.0
File Interpreter ABI Platform Actions
polars_profiling-0.2.0-py2.py3-none-any.whl Python 2, Python 3 none any Details for polars_profiling-0.2.0-py2.py3-none-any.whl

Total release size: 2.2 MB

Release files / polars_profiling-0.2.0.tar.gz

Download URL polars_profiling-0.2.0.tar.gz
Size 1.8 MB
Tags Source
SHA-256 checksum
How to use checksums
0a5c8cbb560290edd1495d101dc88f3a91674f9cb45ea91ba3983452b8fb0536
BLAKE2b-256 checksum
How to use checksums
e22db67c8c07fd6aeb35d6156fcf7bd649ad6fc9f242277713cc969767c64291
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 24, 2026.

Transparency log

Release files / polars_profiling-0.2.0-py2.py3-none-any.whl

Download URL polars_profiling-0.2.0-py2.py3-none-any.whl
Size 366.8 kB
Tags Python 2 Python 3
SHA-256 checksum
How to use checksums
96eadc9a225957abd03c59d9f91d7b6cacebaaa95be621047d150272055a1eb0
BLAKE2b-256 checksum
How to use checksums
39eed4c9c352dd7a274428eb035afc24352bae8ce9f6ab2a47b3794e556c3f8a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 24, 2026.

Transparency log

Security for polars-profiling 0.2.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for polars_profiling-0.2.0.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 24, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page