dataxid-profiling
Fast, Polars-native data profiling with interactive HTML reports and data quality alerts.
Quickstart
import polars as pl
from dataxid_profiling import ProfileReport
df = pl.read_csv("data.csv")
report = ProfileReport(df)
report.to_html("report.html")
Pandas works too:
report = ProfileReport(pd.read_csv("data.csv"))
Report Preview
Dataset overview — row/column counts, missing cells, duplicates, memory usage, and column type distribution at a glance.
Column details — per-column statistics, top value distribution with an explicit "Other" rollup for the long tail, and word clouds for categorical data.
Correlations — interactive heatmap showing relationships between numeric columns.
Interactions — scatter plots for numeric pairs and box plots for categorical × numeric pairs, with dynamic column selection.
Highlights
- Built on Polars — fast, memory-efficient, Rust-powered
- 3 lines to profile any dataset
- Programmatic-first:
.to_dict(),.stats,.alerts - Interactive HTML reports with ECharts
- Accepts Polars, Pandas, CSV, and Parquet
- 5 column types: numeric, categorical, boolean, datetime, text
- 7 data quality alerts out of the box
- 5 correlation types: Pearson, Spearman, Kendall, Cramér's V, Phi K
- Interactions: scatter plot + box plot with dynamic column selection
- Categorical value counts keep the long tail via an explicit "Other" rollup (
other_values) - Two modes:
"complete"for deep analysis,"overview"for speed - Fully typed
Installation
pip install dataxid-profiling
Usage
Programmatic access
report = ProfileReport(df, title="Customer Data Profile")
stats = report.to_dict()
alerts = report.alerts
column_stats = report.stats["age"]
correlations = report.correlations
JSON export
report.to_json("report.json")
Configuration
from dataxid_profiling import ProfileReport, ProfileConfig
config = ProfileConfig(
title="Customer Data Profile",
mode="overview",
missing_threshold=0.1,
histogram_bins=30,
)
report = ProfileReport(df, config=config)
Modes
| Feature | "complete" |
"overview" |
|---|---|---|
| Basic stats | ✓ | ✓ |
| Histograms & value counts | ✓ | ✓ |
| Correlations | ✓ | ✗ |
| Interactions | ✓ | ✗ |
| Character analysis | ✓ | ✗ |
| Duplicate rows table | ✓ | ✗ |
Output formats
| Format | Method | Use case |
|---|---|---|
| HTML | report.to_html("report.html") |
Interactive report |
| JSON | report.to_json("report.json") |
Machine-readable |
| Dict | report.to_dict() |
Python-native |
Contributing
Contributions are welcome. See CONTRIBUTING.md for details.
Links
License
Metadata
Release files for dataxid-profiling 0.4.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| dataxid_profiling-0.4.0.tar.gz | 758.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| dataxid_profiling-0.4.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 865.2 kB
Release files / dataxid_profiling-0.4.0.tar.gz
| Download URL | dataxid_profiling-0.4.0.tar.gz |
|---|---|
| Size | 758.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
fa9b9e6dca48fafd3aff8497261116cca0ab6cbf50d86564db68ade243459aad
|
|
BLAKE2b-256 checksum How to use checksums |
df01a81f2993e1aea9e59bbefe82a5aca366f6416b04a2fdaf3922bd653e12ca
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.9.22 {"installer":{"name":"uv","version":"0.9.22","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / dataxid_profiling-0.4.0-py3-none-any.whl
| Download URL | dataxid_profiling-0.4.0-py3-none-any.whl |
|---|---|
| Size | 107.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
74f28e9b0aae786660ff36598c64020cefc5f0a454a167e982ac6a0ee0b54a00
|
|
BLAKE2b-256 checksum How to use checksums |
2644cbab2190fb9209b1abb2d3504165f8d4f9674f8ec7ac9ad5704879577b8d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.9.22 {"installer":{"name":"uv","version":"0.9.22","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|