A helper library for integrating pandas
and scikit-learn
. It contains all the trash that everyone writes, but for some reason no one has really consolidated all that well into a library.
Both scikit-learn
and pandas
are terrific libraries. scikit-learn
's Pipeline
and FeatureUnion
classes make it easy to prepare data for machine learning by the use of Transformers
.
You can perform end to end data prep, training, and validation - unless you also want to do all of
that with a pandas
DataFrame
. In addition, pandas has convenient utilities for handling missing
data, but all of that goes out the door when trying to use scikit-learn Transformers
such as the
StandardScaler
. As both libraries are ubiquitous in the data science community, it seems odd that
there are very few options to integrate the two. Most users end up writing or reusing some design
patterns that implement simple transformers on pandas DataFrames such as selection by index/column,
dtype, etc.
trash-pandas
is our attempt to unify the two with a lightweight and extensible wrapper on the
scikit-learn's Transformer
concept. trash-pandas
provides some simple base classes that wrap
scikit-learn's functionality so that users can easily write their own DataFrame
friendly
Transformers
as well as some Transformers
that users commonly use.
"Trash panda" is of course a nickname given to racoons by some people.
This is not an attempt to reproduce the work of sklearn-pandas
or pandas-ml
, both of which take a very different approach.
trash-pandas
attempts to build a very light and thin layer to weave together pandas
and scikit-learn
in the most flexible way
possible so that users can do things mostly the same as always, but with less boilerplate and more flexibility. pandas-ml
offers
a full integration of the two libraries and sklearn-pandas
offers a way to build DataFrame
friendly pipelines.