From abcd940d3aaa906eb7bd86c48785959a15feadc2 Mon Sep 17 00:00:00 2001 From: dmitriy1ikobe Date: Mon, 13 Jul 2026 18:23:39 +0100 Subject: [PATCH 1/4] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 6c78146..7abcd40 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@

- Percentify logo + Percentify logo

[![PyPI version](https://img.shields.io/pypi/v/percentify.svg?style=flat&color=blue)](https://pypi.org/project/percentify/) From cd63d91cf59877870eeead035f73487c356ff959 Mon Sep 17 00:00:00 2001 From: dmitriy1ikobe Date: Sun, 19 Jul 2026 16:39:49 +0100 Subject: [PATCH 2/4] Update README.md --- README.md | 12 +----------- 1 file changed, 1 insertion(+), 11 deletions(-) diff --git a/README.md b/README.md index 62c849d..a93ab77 100644 --- a/README.md +++ b/README.md @@ -231,14 +231,4 @@ print(change(kpis)) ## 🤝 Contributing -Contributions are welcome but they must follow the repo's guiding principle: -> Keep each method as direct-to-output as possible. A percentify function should return the single most common answer in one line, and point users to the underlying library (pandas, scipy, statsmodels, scikit-learn) for the full, configurable version when the simplest output isn't what they're after. - -**It must support polars.** Every function accepts both pandas and polars objects (via the `@_backend_aware` decorator) and returns the same kind, so any new contribution must keep that parity. - -If your idea keeps things that simple and direct: -- Open an issue first to discuss it -- Fork the repo -- Create a branch -- Commit your changes -- Open a pull request +Contributions are welcome, provided they align with the repository’s guiding principles. Please review the [contributing](https://github.com/data-centt/percentify/blob/main/CONTRIBUTING.md) guidelines before submitting. From 04b9ab1dfe670ac3153e586b6cb0f148079cba0a Mon Sep 17 00:00:00 2001 From: dmitriy1ikobe Date: Sun, 19 Jul 2026 16:44:10 +0100 Subject: [PATCH 3/4] Update README.md Restructure the readme --- README.md | 23 ++++++++--------------- 1 file changed, 8 insertions(+), 15 deletions(-) diff --git a/README.md b/README.md index a93ab77..ab602b5 100644 --- a/README.md +++ b/README.md @@ -33,11 +33,11 @@ report.health # a 0 to 100 data-health score assert not report.errors # drop it straight into a CI data-quality gate ``` -Point it at any messy DataFrame, pandas or Polars, and see what it flags before you model. [Try it on your own data →](https://data-centt.github.io/percentify/documentation/#profiler) +Point it at any messy DataFrame, pandas or Polars, and see what it flags before you model. [Try it →](https://data-centt.github.io/percentify/documentation/#profiler) ## 📖 Documentation -**Full guide, every function, and live examples → [data-centt.github.io/percentify](https://data-centt.github.io/percentify/)** +**Full guide and live examples → [data-centt.github.io/percentify](https://data-centt.github.io/percentify/)** ## 📦 Installation @@ -79,7 +79,12 @@ missing(df) One import, one line. A clean, sorted DataFrame you can read or feed into the next step. -## Examples +## 🤝 Contributing + +Contributions are welcome, provided they align with the repository’s guiding principles. Please review the [contributing](https://github.com/data-centt/percentify/blob/main/CONTRIBUTING.md) guidelines before submitting. + + +## More Examples These are short, recipe-style examples that go beyond the one-liner above and are intentionally not covered in the [documentation](https://data-centt.github.io/percentify/documentation/). The docs show each function in isolation; these show how to chain them into a real workflow. @@ -220,15 +225,3 @@ print(change(kpis)) | `display` | Format numbers or a column as clean "%" strings | → See the **[documentation](https://data-centt.github.io/percentify/)** for a worked, real-output example of every function. - -## 🛟 Friendly by design - -- **No cryptic tracebacks**; Hand a function a text column where numbers are needed and you get a clear PercentifyWarning, not an Arrow/NumPy stack trace. -- **Sensible defaults**; Results come back sorted worst-first, and PCA is standardized out of the box. -- **DataFrames everywhere**; so the output drops straight into your notebook, your next filter, or your model. -- **Pandas or polars**; pass either a pandas or polars object and you get the same kind back, no flag needed. - - -## 🤝 Contributing - -Contributions are welcome, provided they align with the repository’s guiding principles. Please review the [contributing](https://github.com/data-centt/percentify/blob/main/CONTRIBUTING.md) guidelines before submitting. From 698cc04a9da2dbf0947b0a789df526bbbd96e3ed Mon Sep 17 00:00:00 2001 From: dmitriy1ikobe Date: Sun, 19 Jul 2026 16:47:41 +0100 Subject: [PATCH 4/4] Update README.md --- README.md | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index ab602b5..ee45714 100644 --- a/README.md +++ b/README.md @@ -35,11 +35,11 @@ assert not report.errors # drop it straight into a CI data-quality gate Point it at any messy DataFrame, pandas or Polars, and see what it flags before you model. [Try it →](https://data-centt.github.io/percentify/documentation/#profiler) -## 📖 Documentation +# 📖 Documentation -**Full guide and live examples → [data-centt.github.io/percentify](https://data-centt.github.io/percentify/)** +**Full guides → [data-centt.github.io/percentify](https://data-centt.github.io/percentify/)** -## 📦 Installation +# 📦 Installation ```bash pip install percentify @@ -79,12 +79,12 @@ missing(df) One import, one line. A clean, sorted DataFrame you can read or feed into the next step. -## 🤝 Contributing +# 🤝 Contributing Contributions are welcome, provided they align with the repository’s guiding principles. Please review the [contributing](https://github.com/data-centt/percentify/blob/main/CONTRIBUTING.md) guidelines before submitting. -## More Examples +# More Examples These are short, recipe-style examples that go beyond the one-liner above and are intentionally not covered in the [documentation](https://data-centt.github.io/percentify/documentation/). The docs show each function in isolation; these show how to chain them into a real workflow. @@ -103,7 +103,7 @@ assert report.errors.empty, report.to_frame() assert report.health >= 80, f"health too low: {report.health}" ``` -### Rank correlations by significance +#### Rank correlations by significance Pull the pairs that are both strong *and* unlikely to be noise: @@ -121,7 +121,7 @@ df = pd.DataFrame({ print(correlate(df).sort_values("p_value").head(5)) ``` -### Build a transform pipeline from `skew_report` +#### Build a transform pipeline from `skew_report` Let `skew_report` tell you what to apply, then apply it: @@ -145,7 +145,7 @@ df["income_log"] = np.log1p(df["income"]) # numpy / pandas, not percentify df["visits_log"] = np.log1p(df["visits"]) ``` -### Interpret PCA with both calls +#### Interpret PCA with both calls Variance tells you *how much* of the signal each axis carries; loadings tell you *what it means*: @@ -163,7 +163,7 @@ print(pca_variance(df)) # PC1 carries most of the variance print(pca_loadings(df)) # PC1 = (height, weight) with similar signs ``` -### Drop collinear columns before modelling +#### Drop collinear columns before modelling Use `vif` with a threshold to get a drop-list you can feed straight into `df.drop`: @@ -183,7 +183,7 @@ print(to_drop) # e.g. ['cost', 'margin'] clean = df.drop(columns=to_drop) ``` -### Month-over-month KPI table +#### Month-over-month KPI table `change` over a DataFrame applies period-over-period growth to every numeric column at once: @@ -202,7 +202,7 @@ print(change(kpis)) - [Worked examples for every function](https://data-centt.github.io/percentify/documentation/) - [Project documentation](https://data-centt.github.io/percentify/) -## What's inside +# What's inside | Function | What it answers | |---|---|