Source code for learning_machine.engine.dataframe

from __future__ import annotations
import pandas as pd
from learning_machine.engine import DataEngine, create_engines_from_config
from learning_machine.zoo.zoo import DATA_ENGINE_ZOO


[docs] @DATA_ENGINE_ZOO.regist() class ConcatDFs(DataEngine): """Concat the outputs of the engines into pd.Dataframe"""
[docs] def __init__(self, engines: list[DataEngine]): """ Args: engines (list[DataEngine]): engines """ super().__init__() self.engines = engines
def __call__(self, data: pd.DataFrame) -> pd.DataFrame: datas = [] for engine in self.engines: datas.append(engine(data)) return pd.concat([data] + datas, axis=1) @classmethod def from_config(cls, config: list) -> ConcatDFs: engines = create_engines_from_config(config) return cls(engines)
[docs] @DATA_ENGINE_ZOO.regist() class DropColumns(DataEngine): """Drop columns from dataframe"""
[docs] def __init__(self, cols: list[str], copy=True): """ Args: cols (list[str]): columns that want to drop copy (bool, optional): copy data and return new data that processed. If False, it can effect to original data. Defaults to True. """ self.drop_cols = cols self.copy = copy
def __call__(self, data: pd.DataFrame) -> pd.DataFrame: if self.copy: data = data.copy() for col in self.drop_cols: data.pop(col) return data