Sequentially apply a list of transforms and a final estimator.
Intermediate steps of the pipeline must be transforms. That is, they
must implement fit and transform methods.
The final estimator only needs to implement fit.
The purpose of the pipeline is to assemble several steps that can be
cross-validated together while setting different parameters. This simplifies code and allows for
deploying an estimator and preprocessing together, e.g. with Pipeline.to_gbq(...).
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-08-28 UTC."],[],[],null,["# Module pipeline (2.17.0)\n\nVersion latestkeyboard_arrow_down\n\n- [2.17.0 (latest)](/python/docs/reference/bigframes/latest/bigframes.ml.pipeline)\n- [2.16.0](/python/docs/reference/bigframes/2.16.0/bigframes.ml.pipeline)\n- [2.15.0](/python/docs/reference/bigframes/2.15.0/bigframes.ml.pipeline)\n- [2.14.0](/python/docs/reference/bigframes/2.14.0/bigframes.ml.pipeline)\n- [2.13.0](/python/docs/reference/bigframes/2.13.0/bigframes.ml.pipeline)\n- [2.12.0](/python/docs/reference/bigframes/2.12.0/bigframes.ml.pipeline)\n- [2.11.0](/python/docs/reference/bigframes/2.11.0/bigframes.ml.pipeline)\n- [2.10.0](/python/docs/reference/bigframes/2.10.0/bigframes.ml.pipeline)\n- [2.9.0](/python/docs/reference/bigframes/2.9.0/bigframes.ml.pipeline)\n- [2.8.0](/python/docs/reference/bigframes/2.8.0/bigframes.ml.pipeline)\n- [2.7.0](/python/docs/reference/bigframes/2.7.0/bigframes.ml.pipeline)\n- [2.6.0](/python/docs/reference/bigframes/2.6.0/bigframes.ml.pipeline)\n- [2.5.0](/python/docs/reference/bigframes/2.5.0/bigframes.ml.pipeline)\n- [2.4.0](/python/docs/reference/bigframes/2.4.0/bigframes.ml.pipeline)\n- [2.3.0](/python/docs/reference/bigframes/2.3.0/bigframes.ml.pipeline)\n- [2.2.0](/python/docs/reference/bigframes/2.2.0/bigframes.ml.pipeline)\n- [2.1.0](/python/docs/reference/bigframes/2.1.0/bigframes.ml.pipeline)\n- [2.0.0](/python/docs/reference/bigframes/2.0.0/bigframes.ml.pipeline)\n- [1.42.0](/python/docs/reference/bigframes/1.42.0/bigframes.ml.pipeline)\n- [1.41.0](/python/docs/reference/bigframes/1.41.0/bigframes.ml.pipeline)\n- [1.40.0](/python/docs/reference/bigframes/1.40.0/bigframes.ml.pipeline)\n- [1.39.0](/python/docs/reference/bigframes/1.39.0/bigframes.ml.pipeline)\n- [1.38.0](/python/docs/reference/bigframes/1.38.0/bigframes.ml.pipeline)\n- [1.37.0](/python/docs/reference/bigframes/1.37.0/bigframes.ml.pipeline)\n- [1.36.0](/python/docs/reference/bigframes/1.36.0/bigframes.ml.pipeline)\n- [1.35.0](/python/docs/reference/bigframes/1.35.0/bigframes.ml.pipeline)\n- [1.34.0](/python/docs/reference/bigframes/1.34.0/bigframes.ml.pipeline)\n- [1.33.0](/python/docs/reference/bigframes/1.33.0/bigframes.ml.pipeline)\n- [1.32.0](/python/docs/reference/bigframes/1.32.0/bigframes.ml.pipeline)\n- [1.31.0](/python/docs/reference/bigframes/1.31.0/bigframes.ml.pipeline)\n- [1.30.0](/python/docs/reference/bigframes/1.30.0/bigframes.ml.pipeline)\n- [1.29.0](/python/docs/reference/bigframes/1.29.0/bigframes.ml.pipeline)\n- [1.28.0](/python/docs/reference/bigframes/1.28.0/bigframes.ml.pipeline)\n- [1.27.0](/python/docs/reference/bigframes/1.27.0/bigframes.ml.pipeline)\n- [1.26.0](/python/docs/reference/bigframes/1.26.0/bigframes.ml.pipeline)\n- [1.25.0](/python/docs/reference/bigframes/1.25.0/bigframes.ml.pipeline)\n- [1.24.0](/python/docs/reference/bigframes/1.24.0/bigframes.ml.pipeline)\n- [1.22.0](/python/docs/reference/bigframes/1.22.0/bigframes.ml.pipeline)\n- [1.21.0](/python/docs/reference/bigframes/1.21.0/bigframes.ml.pipeline)\n- [1.20.0](/python/docs/reference/bigframes/1.20.0/bigframes.ml.pipeline)\n- [1.19.0](/python/docs/reference/bigframes/1.19.0/bigframes.ml.pipeline)\n- [1.18.0](/python/docs/reference/bigframes/1.18.0/bigframes.ml.pipeline)\n- [1.17.0](/python/docs/reference/bigframes/1.17.0/bigframes.ml.pipeline)\n- [1.16.0](/python/docs/reference/bigframes/1.16.0/bigframes.ml.pipeline)\n- [1.15.0](/python/docs/reference/bigframes/1.15.0/bigframes.ml.pipeline)\n- [1.14.0](/python/docs/reference/bigframes/1.14.0/bigframes.ml.pipeline)\n- [1.13.0](/python/docs/reference/bigframes/1.13.0/bigframes.ml.pipeline)\n- [1.12.0](/python/docs/reference/bigframes/1.12.0/bigframes.ml.pipeline)\n- [1.11.1](/python/docs/reference/bigframes/1.11.1/bigframes.ml.pipeline)\n- [1.10.0](/python/docs/reference/bigframes/1.10.0/bigframes.ml.pipeline)\n- [1.9.0](/python/docs/reference/bigframes/1.9.0/bigframes.ml.pipeline)\n- [1.8.0](/python/docs/reference/bigframes/1.8.0/bigframes.ml.pipeline)\n- [1.7.0](/python/docs/reference/bigframes/1.7.0/bigframes.ml.pipeline)\n- [1.6.0](/python/docs/reference/bigframes/1.6.0/bigframes.ml.pipeline)\n- [1.5.0](/python/docs/reference/bigframes/1.5.0/bigframes.ml.pipeline)\n- [1.4.0](/python/docs/reference/bigframes/1.4.0/bigframes.ml.pipeline)\n- [1.3.0](/python/docs/reference/bigframes/1.3.0/bigframes.ml.pipeline)\n- [1.2.0](/python/docs/reference/bigframes/1.2.0/bigframes.ml.pipeline)\n- [1.1.0](/python/docs/reference/bigframes/1.1.0/bigframes.ml.pipeline)\n- [1.0.0](/python/docs/reference/bigframes/1.0.0/bigframes.ml.pipeline)\n- [0.26.0](/python/docs/reference/bigframes/0.26.0/bigframes.ml.pipeline)\n- [0.25.0](/python/docs/reference/bigframes/0.25.0/bigframes.ml.pipeline)\n- [0.24.0](/python/docs/reference/bigframes/0.24.0/bigframes.ml.pipeline)\n- [0.23.0](/python/docs/reference/bigframes/0.23.0/bigframes.ml.pipeline)\n- [0.22.0](/python/docs/reference/bigframes/0.22.0/bigframes.ml.pipeline)\n- [0.21.0](/python/docs/reference/bigframes/0.21.0/bigframes.ml.pipeline)\n- [0.20.1](/python/docs/reference/bigframes/0.20.1/bigframes.ml.pipeline)\n- [0.19.2](/python/docs/reference/bigframes/0.19.2/bigframes.ml.pipeline)\n- [0.18.0](/python/docs/reference/bigframes/0.18.0/bigframes.ml.pipeline)\n- [0.17.0](/python/docs/reference/bigframes/0.17.0/bigframes.ml.pipeline)\n- [0.16.0](/python/docs/reference/bigframes/0.16.0/bigframes.ml.pipeline)\n- [0.15.0](/python/docs/reference/bigframes/0.15.0/bigframes.ml.pipeline)\n- [0.14.1](/python/docs/reference/bigframes/0.14.1/bigframes.ml.pipeline)\n- [0.13.0](/python/docs/reference/bigframes/0.13.0/bigframes.ml.pipeline)\n- [0.12.0](/python/docs/reference/bigframes/0.12.0/bigframes.ml.pipeline)\n- [0.11.0](/python/docs/reference/bigframes/0.11.0/bigframes.ml.pipeline)\n- [0.10.0](/python/docs/reference/bigframes/0.10.0/bigframes.ml.pipeline)\n- [0.9.0](/python/docs/reference/bigframes/0.9.0/bigframes.ml.pipeline)\n- [0.8.0](/python/docs/reference/bigframes/0.8.0/bigframes.ml.pipeline)\n- [0.7.0](/python/docs/reference/bigframes/0.7.0/bigframes.ml.pipeline)\n- [0.6.0](/python/docs/reference/bigframes/0.6.0/bigframes.ml.pipeline)\n- [0.5.0](/python/docs/reference/bigframes/0.5.0/bigframes.ml.pipeline)\n- [0.4.0](/python/docs/reference/bigframes/0.4.0/bigframes.ml.pipeline)\n- [0.3.0](/python/docs/reference/bigframes/0.3.0/bigframes.ml.pipeline)\n- [0.2.0](/python/docs/reference/bigframes/0.2.0/bigframes.ml.pipeline) \nFor composing estimators together. This module is styled after scikit-learn's\npipeline module: \u003chttps://scikit-learn.org/stable/modules/pipeline.html\u003e.\n\nClasses\n-------\n\n### [Pipeline](/python/docs/reference/bigframes/latest/bigframes.ml.pipeline.Pipeline)\n\n Pipeline(steps: typing.List[typing.Tuple[str, bigframes.ml.base.BaseEstimator]])\n\nPipeline of transforms with a final estimator.\n\nSequentially apply a list of transforms and a final estimator.\nIntermediate steps of the pipeline must be `transforms`. That is, they\nmust implement `fit` and `transform` methods.\nThe final estimator only needs to implement `fit`.\n\nThe purpose of the pipeline is to assemble several steps that can be\ncross-validated together while setting different parameters. This simplifies code and allows for\ndeploying an estimator and preprocessing together, e.g. with `Pipeline.to_gbq(...).`"]]