This repository is now archived and is no longer actively maintained.
'dstoolbox' was the Otto Group BI Data Science Toolbox. It was created as a collection of small, reusable tools to make working with scikit-learn and pandas easier. It served our production services and machine learning workflows well over the years.
We want to say a huge thank you to all the contributors and users who supported this project!
Because the repository is no longer maintained, we recommend looking into modern alternatives:
- Native library features: Many workflows that once required custom helper functions in 'dstoolbox' are now natively supported in the latest versions of pandas and scikit-learn.
- Modern ecosystem tools: For advanced machine learning pipelines, explore current, active frameworks within the PyData ecosystem that fit your specific workflow.
This repository contains tools that make working with scikit-learn and pandas easier.
dstoolbox is not one big tool but rather an amalgamation of small re-usable tools. They are intended to work well with scikit-learn and pandas make the integration of those libraries easier.
The best way to get started is to have a look at the notebooks folder, especially at the showcase notebook.
The tools included here are used by us at Otto Group BI for our production services, as well as by individual members for machine learning related things, such as participating in Kaggle competitions.
Using pip:
pip install dstoolbox
There is a conda recipe for those who want to build their own conda package.
Pull requests are welcome. Here are some directions:
To run the tests, you need to install the dev requirements using pip:
pip install -r requirements-dev.txt
or conda:
conda install --file requirements-dev.txt
Next you should check that all unit tests and all static code checks pass:
py.test pylint dstoolbox
- Python 3 only.
- Code should be re-usable and succinct.
- Where applicable, it should be compatible with scikit-learn, pandas, and Palladium.
- It should be documented and unit-tested using pytest (100% code coverage desired).
- It should conform to the coding standards prescribed by pylint (where it makes sense).
- There should be usage examples that cover the most common use cases (the best place would be an IPython/Jupyter notebook).
- Don't add dependencies unless absolutely necessary.