df-autoprofiler
df-autoprofiler is a lightweight, heuristic-based data profiling tool for pandas DataFrames.
It generates a self-contained HTML report with summaries, correlations, outlier detection, visualizations, and actionable suggestions — designed to scale to large datasets via sampling.
1. Dataset Overview
Provides a high-level summary of your dataset:
- Number of rows and columns
- Numeric vs categorical feature detection
- Missing data indicators
- High-cardinality detection
- Machine Learning suitability hints
Once you create a profile with from df_autoprofiler.profiler import profile, you can do:
report = profile(df)
You can then access:
-
report.numerics — numeric feature summaries
-
report.categoricals — categorical feature summaries
-
report.correlations — correlation tables
-
report.outliers — outlier detection results
-
report.missing — missing data summaries
-
report.suggestions — actionable suggestions
2. Statistical Summaries
Numeric features: count, mean, std, quantiles, missing %
Categorical features: unique values, top category, frequency
All summaries are available via the report object:
numeric_summary = report.numerics
categorical_summary = report.categoricals
3. Correlations
Numeric ↔ Numeric: Pearson & Spearman
Categorical ↔ Categorical: Cramér’s V (with safety heuristics)
Categorical ↔ Numeric: Correlation Ratio (η²)
Automatic skipping of unstable or misleading correlations
Warnings when sampling or heuristics are applied
Access correlations:
report.correlations["numeric"]["pearson"]
report.correlations["numeric"]["spearman"]
report.correlations["mixed"]
4. Outlier Detection
IQR-based detection
Reports row indices per column
Skips constant or invalid columns
Access outliers:
outliers = report.outliers
5. Missing Data Analysis
Detects missing values across columns
Generates summary tables with counts and percentages
Access missing data:
missing_data = report.missing
6. Heuristic Suggestions
Prioritized recommendations with three levels:
-
🚨 High priority
-
⚠️ Medium priority
-
ℹ️ Low priority
Examples:
High skew → consider log/Box-Cox transform
High missingness → consider imputation
Constant columns → consider dropping
Access suggestions:
suggestions = report.suggestions
7. Visualizations
Histograms, distributions, and correlation plots
Embedded directly into the HTML report
Handles special characters safely in filenames
Generate plots:
report.plots['hist_{NAME_OF_COL}']
Quickstart Example
import pandas as pd
from df_autoprofiler.profiler import profile
df = pd.read_csv("data.csv")
# Create the profile
report = profile(df)
# Access summaries
print(report.numerics.head())
print(report.categoricals.head())
print(report.missing.head())
# Generate HTML report
report.to_html("report.html")
Handling Large Datasets
-
Automatic sampling to maintain performance
-
Warnings included in report when sampling is applied
Example with a large synthetic dataset:
import pandas as pd
import numpy as np
from df_autoprofiler.profiler import profile
n = 1_000_000
df_large = pd.DataFrame({
f"num_{i}": np.random.randn(n) for i in range(10)
})
for j in range(5):
df_large[f"cat_{j}"] = np.random.choice(["A","B","C","D"], size=n)
report = profile(df_large)
report.to_html("large_report.html")
Installation
pip install df-autoprofiler
Known Limitations
-
Correlation measures are heuristic-based
-
ML readiness scoring is qualitative
-
Sampling may hide rare patterns
-
Bugs
📄 License
MIT License
🙌 Acknowledgments
Built with:
-
pandas
-
numpy
-
scipy
-
matplotlib
Metadata
Release files for df-autoprofiler 0.1.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| df_autoprofiler-0.1.1.tar.gz | 12.4 kB | Without provenance | Details for df_autoprofiler-0.1.1.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| df_autoprofiler-0.1.1-py3-none-any.whl | Python 3 | none | any | Details for df_autoprofiler-0.1.1-py3-none-any.whl |
Total release size: 25.7 kB
Release files / df_autoprofiler-0.1.1.tar.gz
| Download URL | df_autoprofiler-0.1.1.tar.gz |
|---|---|
| Size | 12.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
f5ea14ab442bc534361c3f9772707f9de01277b76b2fb13ca2080821b01a265f
|
|
BLAKE2b-256 checksum How to use checksums |
7c3efcc4222145ff6e1d3894dc55535ec068430daba340b33ee30af400df43a1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.5
|
Release files / df_autoprofiler-0.1.1-py3-none-any.whl
| Download URL | df_autoprofiler-0.1.1-py3-none-any.whl |
|---|---|
| Size | 13.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
6fc61291a019704f0e91c0a9ab362c6c382b970bebac1f6ea730e945acdf5112
|
|
BLAKE2b-256 checksum How to use checksums |
114b02cd7fc186ecab368db1be967619f275dcc6297224ff9f29ef2b910d1b8e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.5
|
Security for df-autoprofiler 0.1.1
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.
No provenance found
None of the files in this release were uploaded with provenance metadata.
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.