A rich, interactive exploratory-data-analysis report — statistics, distributions, correlations, missing-value diagnostics and data-quality alerts — computed natively with Polars.
Point it at any Polars DataFrame and get a self-contained HTML report. No conversion to pandas, no extra setup.
import polars as pl from polars_profiling import ProfileReport df = pl.read_csv("titanic.csv") profile = ProfileReport(df, title="Titanic", explorative=True) profile.to_file("report.html")
Count, distinct, missing, quantiles, mean/std, skew, kurtosis, MAD, monotonicity, zeros and infinities.
Auto, Pearson, Spearman, Kendall and Cramér's V — all computed natively in Polars.
Count bars, nullity matrix and a missing-correlation heatmap to spot gaps fast.
Numeric, Categorical, Boolean, DateTime and Text — with content-based detection.
High cardinality, imbalance, constants, high correlation, uniqueness and more.
Diff two reports side by side to track drift between snapshots.
A fork of ydata-profiling rebuilt so the entire data path runs on Polars. The heavy dependencies are gone — and so is the phone-home telemetry.
| ydata-profiling | polars-profiling | |
|---|---|---|
| Input | pandas / Spark | Polars |
| Compute engine | pandas / numpy | native Polars expressions |
| pandas dependency | required | none |
| seaborn / statsmodels / visions | required | removed |
| Telemetry | phones home | none |
The Titanic dataset — 891 rows, 12 columns — profiled end to end.
Open the live demo report →