featuretools
a framework for automated feature engineering
What it is and what it does
Featuretools is a Python library that automates feature engineering—the traditionally manual process of creating predictive features from raw data. It implements Deep Feature Synthesis (DFS), an algorithm that automatically generates features by aggregating and transforming values across related tables in a multi-table dataset. You define the structure of your data (entities and relationships), point DFS at a target table, and it produces a feature matrix ready for machine learning, handling temporal aggregations, counts, statistics, and custom transformations.
The library comes with built-in primitives for common feature types (sum, mean, mode, date extraction, etc.) and allows you to define custom primitives for domain-specific transformations. It integrates with standard data science tools—pandas for data handling, numpy and scipy for computation, and optional Dask support for parallel execution. The package is actively maintained, production-stable, and widely used in data science workflows where multi-table relational data needs rapid feature exploration.
Use it for:
- Predict customer behavior (e.g., next purchase) by automatically generating aggregated features from transaction history and customer metadata.
- Build time-series features from event logs by automatically computing rolling statistics and temporal aggregations across related tables.
- Rapidly prototype machine learning pipelines on new datasets by generating a baseline feature set without manual feature engineering.
- Scale feature engineering to large datasets using Dask integration to parallelize DFS computation across multiple jobs.
- Define domain-specific features via custom primitives when built-in aggregations don't capture the business logic you need.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Featuretools automates feature engineering for machine learning by synthesizing new features from multi-table datasets using Deep Feature Synthesis (DFS), eliminating manual feature creation.
Yes. Featuretools is worth installing if you work with multi-table relational data and want to automate feature engineering. It has low install friction, active maintenance, no known vulnerabilities, permissive licensing, and a mature API. Install it if you're prototyping ML pipelines or need to scale feature generation; skip it if your data is already a single flat table or if you prefer manual feature control.
Install
featuretools on PyPI
pip
pip install featuretoolsuv
uv add featuretoolspoetry
poetry add featuretoolsInstalling featuretools
Before you install
Low install friction with a pure-Python wheel and nine common dependencies (numpy, pandas, scipy, cloudpickle, woodwork, and others). Actively maintained with recent commits and production-stable status.
License in practice
BSD 3-clause permissive license allows commercial and private use with minimal restrictions, requiring only license and copyright notice retention.
Quickstart
import featuretools as ft
es = ft.demo.load_mock_customer(return_entityset=True)
feature_matrix, feature_defs = ft.dfs(entityset=es, target_dataframe_name="customers")
Requires Python 3.9 or later (supports 3.9, 3.10, 3.11, 3.12).
Verify before relying
- Whether custom primitives can be defined and integrated without external dependencies beyond those listed.
- Performance characteristics and scalability limits for datasets larger than the Instacart example (3 million orders).
- Whether Dask integration (optional add-on) is necessary for multi-job parallelization or if single-threaded DFS is sufficient for typical use.
Package facts
| License | BSD 3-clause (permissive) |
| Python support | supports the current Python release (<4,>=3.9) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 9 — cloudpickle, holidays, numpy, packaging, pandas, psutil, scipy, tqdm, woodwork |
| Maintenance | actively maintained — 822 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 206,281/month — #9,575 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: featuretools-1.31.0-py3-none-any.whl
Keywords: feature engineering, data science, machine learning
Tags
More Software Development packages
Provides backported and experimental type hints…
permissive · top 100 on PyPI
numpyNumPy provides an N-dimensional array object…
permissive · top 100 on PyPI
fastapiFastAPI is a Python web framework for building…
permissive · top 100 on PyPI
annotated-docProvides a way to document function parameters,…
permissive · top 100 on PyPI
typerTyper builds command-line applications from…
permissive · top 1,000 on PyPI
distlibDistlib provides low-level packaging utilities…
permissive · top 1,000 on PyPI
sdvSDV generates synthetic tabular data by…
unclear · top 15,000 on PyPI
cleanlabCleanlab automatically detects and helps fix…
permissive · top 15,000 on PyPI
sklearn-pandasBridges pandas DataFrames and scikit-learn by…
permissive · top 15,000 on PyPI
woodworkWoodwork adds a typing layer to pandas…
permissive · top 15,000 on PyPI
dbl-discoverxDiscoverX automates bulk administration tasks…
unclear · top 15,000 on PyPI
ctganCTGAN generates synthetic tabular data by…
unclear · top 15,000 on PyPI
whylogswhylogs generates statistical profiles of…
permissive · top 15,000 on PyPI
nvidia-cudnn-cu11Provides cuDNN runtime libraries for…
unclear · top 5,000 on PyPI
mlforecastmlforecast trains machine learning models on…
permissive · top 15,000 on PyPI
azureml-train-automlAutomatically discovers and trains the best…
unclear · top 15,000 on PyPI