rlportfolio.data.scalers module
- class GroupByScaler
Bases:
BaseEstimator,TransformerMixinSklearn-like scaler that scales considering groups of data.
In the financial setting, this scale can be used to normalize a DataFrame with time series of multiple tickers. The scaler will fit and transform data for each ticker independently.
- __init__(by: str, scaler: type[~sklearn.preprocessing._data.MaxAbsScaler | ~sklearn.preprocessing._data.MinMaxScaler | ~sklearn.preprocessing._data.StandardScaler | ~sklearn.preprocessing._data.RobustScaler] = <class 'sklearn.preprocessing._data.MaxAbsScaler'>, columns: list[str] | None = None, scaler_kwargs: dict[str, ~typing.Any] = None) GroupByScaler
Initializes GoupBy scaler.
- Parameters:
by – Name of column that will be used to group.
scaler – Scikit-learn scaler class to be used.
columns – List of columns that will be scaled.
scaler_kwargs – Keyword arguments for chosen scaler.
- fit(X: DataFrame, y: Any = None) GroupByScaler
Fits the scaler to input data.
- Parameters:
X – DataFrame to fit.
y – Not used.
- Returns:
Fitted GroupBy scaler.
- transform(X: DataFrame, y: Any = None) DataFrame
Transforms unscaled data.
- Parameters:
X – DataFrame to transform.
y – Not used.
- Returns:
Transformed DataFrame.