Install

Featuretools is available for Python 3.7, 3.8, 3.9, and 3.10. It can be installed from pypi, conda-forge, or from source.

To install Featuretools, run the following command:

$ python -m pip install featuretools
$ conda install -c conda-forge featuretools

Add-ons

Featuretools allows users to install add-ons individually or all at once:

Hint

Be sure to install Scala and Spark if you want to use Spark

$ python -m pip install "featuretools[complete]"
$ python -m pip install "featuretools[nlp_primitives]"
$ python -m pip install "featuretools[spark]"
$ python -m pip install "featuretools[tsfresh]"
$ python -m pip install "featuretools[autonormalize]"
$ python -m pip install "featuretools[update_checker]"
$ conda install -c conda-forge nlp-primitives featuretools-tsfresh-primitives pyspark alteryx-open-src-update-checker
$ conda install -c conda-forge nlp-primitives
$ conda install -c conda-forge featuretools-tsfresh-primitives
$ conda install -c conda-forge pyspark
$ conda install -c conda-forge alteryx-open-src-update-checker
  • NLP Primitives: Use Natural Language Processing Primitives in Featuretools

  • TSFresh Primitives: Use 60+ primitives from tsfresh in Featuretools

  • Spark: Use Woodwork with Spark DataFrames

  • AutoNormalize: Automated creation of normalized EntitySet from denormalized data

  • Update Checker: Receive automatic notifications of new Featuretools releases

Installing Graphviz

In order to use EntitySet.plot or featuretools.graph_feature you will need to install the graphviz library.

$ brew install graphviz
$ python -m pip install graphviz
$ brew install graphviz
$ conda install -c conda-forge python-graphviz
$ sudo apt install graphviz
$ python -m pip install graphviz
$ sudo apt install graphviz
$ conda install -c conda-forge python-graphviz
$ python -m pip install graphviz
$ conda install -c conda-forge python-graphviz

If you installed graphviz for Windows with pip, install graphviz.exe from the official source.

Source

To install Featuretools from source, clone the repository from Github, and install the dependencies.

Hint

Be sure to install Scala and Spark if you want to run all unit tests

git clone https://github.com/alteryx/featuretools.git
cd featuretools
python -m pip install .

Scala and Spark

$ brew tap AdoptOpenJDK/openjdk
$ brew install --cask adoptopenjdk11
$ brew install scala apache-spark
$ echo 'export JAVA_HOME=$(/usr/libexec/java_home)' >> ~/.zshrc
$ echo 'export PATH="/usr/local/opt/[email protected]/bin:$PATH"' >> ~/.zshrc
$ brew install [email protected] scala apache-spark graphviz
$ echo 'export PATH="/opt/homebrew/opt/[email protected]/bin:$PATH"' >> ~/.zshrc
$ echo 'export CPPFLAGS="-I/opt/homebrew/opt/[email protected]/include:$CPPFLAGS"' >> ~/.zprofile
$ sudo ln -sfn /opt/homebrew/opt/[email protected]/libexec/openjdk.jdk /Library/Java/JavaVirtualMachines/openjdk-11.jdk
$ sudo apt install openjdk-11-jre openjdk-11-jdk scala -y
$ echo "export SPARK_HOME=/opt/spark" >> ~/.profile
$ echo "export PATH=$PATH:$SPARK_HOME/bin:$SPARK_HOME/sbin" >> ~/.profile
$ echo "export PYSPARK_PYTHON=/usr/bin/python3" >> ~/.profile
$ sudo amazon-linux-extras install java-openjdk11 scala -y
$ amazon-linux-extras enable java-openjdk11

Docker

It is also possible to run Featuretools inside a Docker container. You can do so by installing it as a package inside a container (following the normal install guide) or creating a new image with Featuretools pre-installed, using the following commands in your Dockerfile:

FROM --platform=linux/x86_64 python:3.8-slim-buster
RUN apt update && apt -y update
RUN apt install -y build-essential
RUN pip3 install --upgrade --quiet pip
RUN pip3 install featuretools

Development

To make contributions to the codebase, please follow the guidelines here.