# Copyright 2024 The TensorTrade-NG Authors.## Licensed under the Apache License, Version 2.0 (the "License");# you may not use this file except in compliance with the License.# You may obtain a copy of the License at## http://www.apache.org/licenses/LICENSE-2.0## Unless required by applicable law or agreed to in writing, software# distributed under the License is distributed on an "AS IS" BASIS,# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.# See the License for the specific language governing permissions and# limitations under the Licensefrom__future__importannotationsimporttypingiftyping.TYPE_CHECKING:fromtypingimportListfrompandasimportDataFramefromtensortrade.pipeline.transformers.abstractimportAbstractTransformer
[docs]classDataPipeline:""" Initializes the DataPipeline with a list of transformers. :param transformers: A list of transformer instances. :type transformers: List[AbstractTransformer] """def__init__(self,transformers:List[AbstractTransformer]):self.transformers=transformers
[docs]deftransform(self,df:DataFrame)->DataFrame:"""Applies each transformer in sequence to the DataFrame. :param df: The input DataFrame. :type df: DataFrame :return: The transformed DataFrame after applying all transformers. :rtype: DataFrame """fortransformerinself.transformers:df=df.copy()df=transformer.transform(df)df.dropna(inplace=True)returndf