Lightweight exploratory data analysis for pandas DataFrames
Project description
FramePeek
Lightweight exploratory data analysis for pandas DataFrames.
Documentation
- Getting started
- API reference
- Product requirements
- Changelog
- Contributing
- Code of Conduct
- Release guide
Usage
import framepeek as fp
report = fp.profile(
df,
target_column="churn",
correlation_method="spearman",
outlier_multiplier=1.5,
top_n_categories=5,
)
fp.print_report(report)
The report contains overview, columns, missing, duplicates, numeric,
categorical, outliers, correlations, target, and warnings.
print_report() gives each section a title and prints tables without
formatter-generated ellipses.
Each analysis is also available directly:
fp.overview(df)
fp.columns(df)
fp.missing(df)
fp.duplicates(df)
fp.numeric(df)
fp.categorical(df)
fp.outliers(df)
fp.correlations(df)
fp.target(df, target_column="churn")
fp.quality_warnings(df, target_column="churn")
All functions validate their inputs and leave the original DataFrame unchanged. Object columns containing lists, dictionaries, sets, or nested mixtures use safe structural identity for duplicate and categorical analysis.
Outputs
| Function | Return value |
|---|---|
overview |
DataFrame of dataset-level metrics |
columns |
DataFrame with one profile row per column |
missing |
Dictionary containing explicit columns, rows, and co-missingness patterns |
duplicates |
Dictionary containing totals, groups, and examples |
numeric |
DataFrame of descriptive numeric statistics |
categorical |
DataFrame of frequency and cardinality statistics |
outliers |
DataFrame of IQR bounds and potential outlier counts |
correlations |
Dictionary containing matrix and tidy pairs tables |
target |
Dictionary containing categorical or numeric target analysis |
quality_warnings |
DataFrame of actionable quality warnings |
profile |
Dictionary containing metadata and all analyses above |
format_report |
Bounded text representation of a profile |
print_report |
None; prints the bounded text representation |
to_serializable |
Versioned JSON-compatible envelope preserving table labels and conversion fidelity |
Thresholds for missingness, cardinality, outliers, correlations, and class
imbalance can be configured through the corresponding function parameters.
Warning text parsing is sampled reproducibly for large columns. Correlation
analysis supports column subsets, limits, pair-only output, top pairs, and
reproducible row sampling.
Serialization schema 1.0 stores DataFrames as explicit index, column, and
data arrays. Mappings with non-string keys use entry records so distinct labels
cannot overwrite each other; the envelope's exact field identifies lossy
fallback display values.
warnings() remains available as a compatibility alias. Pass
deep_memory=False to overview() or profile() when a shallow memory
estimate is sufficient.
Run the bounded runtime and peak-memory smoke benchmarks with:
python benchmarks/benchmark_profile.py
Development
python -m pip install -e ".[dev]"
python -m ruff check .
python -m mypy src/framepeek
python -m pytest --cov=framepeek --cov-fail-under=100
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file framepeek-0.2.0.tar.gz.
File metadata
- Download URL: framepeek-0.2.0.tar.gz
- Upload date:
- Size: 28.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/7.0.0 CPython/3.12.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0c10d948bb98137e150c27d02abcfa1e7732ab57b5395978b2ebb02d68cf9b89
|
|
| MD5 |
f3334233f3da3e20cfaa5e2cfd00bf99
|
|
| BLAKE2b-256 |
5b54d0d2c4bb5f14b9abbb8981fbe5feda8120445a7dae910d19394692feabf8
|
File details
Details for the file framepeek-0.2.0-py3-none-any.whl.
File metadata
- Download URL: framepeek-0.2.0-py3-none-any.whl
- Upload date:
- Size: 23.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/7.0.0 CPython/3.12.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
40e6c9b8c8e117cc45669d14be83dbd526610f5526b8c8485f51fac667c582f7
|
|
| MD5 |
feffd926d4bb5b2f47f1c95cfc350d65
|
|
| BLAKE2b-256 |
049cde4f456c0c1322ce33253ca19e17410103f416d05b415d3a99ba006c90df
|