Skip to main content

featurely

Reusable feature engineering utilities for tabular machine learning with pandas and scikit-learn.

featurely provides function-based helpers for the screen-then-commit feature engineering loop: build candidate features, test whether they explain variance your current model misses, and keep only the winners.

  • Pipeline evaluation: cross-validated stage-over-stage comparison with persisted, rerun-safe results and progressive box plots.
  • Candidate screening: residual correlation scans with Benjamini-Hochberg false discovery rate correction, for individual features and grouped feature sets.
  • Feature builders: outlier handling, monotonic transforms, geographic encodings (haversine distances, geohash cells, rotated coordinates), quantile bin aggregates, k-means cluster memberships, Gaussian kernel spatial smoothing, and polynomial expansion with PCA component selection.
  • Diagnostics and EDA: distribution plots, pairwise correlation analysis, and variance inflation factors.

All helpers accept a pandas DataFrame, take explicit column names, and return transformed copies without mutating input.

Install

pip install featurely

Requires Python 3.10 or newer.

Quick start

import pandas as pd
import featurely as fl

df = pd.read_csv("my_data.csv")
target = "price"
features = [c for c in df.columns if c != target]

# Establish a baseline
results = fl.add_pipeline_step(None, "raw", df[features], df[target])

# Clean outliers and measure the effect
df_clean = fl.clip_outliers(df, features, threshold=2.25)

results = fl.add_pipeline_step(
    results, "+ cleaned", df_clean[features], df_clean[target]
)

fl.plot_pipeline_steps(results, title="Effect of outlier clipping")

# Build candidates and screen them against baseline residuals
candidates = fl.compute_bin_aggregates(df_clean, "latitude", ["income"], n_bins=10)
scan = fl.run_candidate_scan(df_clean, candidates, target=target)
significant = fl.plot_candidate_scan(scan, title="Candidate scan")

keep = [name for name, is_sig in significant.items() if is_sig]
df_clean = pd.concat([df_clean, candidates[keep]], axis=1)

Documentation

Full API reference, getting-started guide, and a complete worked example on the California housing dataset:

License

MIT

Release files for featurely 0.1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for featurely 0.1.1
File Size Uploaded
featurely-0.1.1.tar.gz 27.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for featurely 0.1.1
File Interpreter ABI Platform
featurely-0.1.1-py3-none-any.whl Python 3 none any Details

Total release size: 54.1 kB

Release files / featurely-0.1.1.tar.gz

Download URL featurely-0.1.1.tar.gz
Size 27.8 kB
Tags Source
SHA-256 checksum
How to use checksums
cf0a9c32213a883f5735dfd324a19cf6d1e9425abb7af2950caf01fe72001e78
BLAKE2b-256 checksum
How to use checksums
b6a1cb5659b68b37aa0365709559ed18218fd42f99ef70952783e4d2550e0171
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 3, 2026.

Transparency log

Release files / featurely-0.1.1-py3-none-any.whl

Download URL featurely-0.1.1-py3-none-any.whl
Size 26.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
857cbb1dc1176b5c857a78b9b7a3988be71a864dc403c1f4f24ce9be21da14e4
BLAKE2b-256 checksum
How to use checksums
57568b257b1ba149c753b61f2e1aa3d28eeee1b82100ef9bc6d652fec62dc089
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 3, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.1.1 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page