data.manydataset.load_pooled_sequence_data

data.manydataset.load_pooled_sequence_data(
    data_list,
    target,
    group_by,
    drop=None,
    input_features=None,
    feature_scaling=None,
    target_scaling=None,
    dataset_type='many_to_many',
)

Pool several DataFrames into one concatenated sequence dataset.

Applies load_sequence_data to every DataFrame (e.g. one compressor map each) and concatenates the resulting sequence datasets — the pooled training set of the schu25a “global training” workflow (ported from load_pretrain_data in src/rnn/utils.py).

Parameters

Name Type Description Default
data_list List[pd.DataFrame] Input DataFrames; one per map. required
target str The target column name. required
group_by str Column whose values define the sequences. required
drop Optional[Union[str, List[str]]] Column(s) to drop from the groups before extracting features. Defaults to None. None
input_features Optional[List[str]] Columns scaled by feature_scaling; see load_sequence_data. Defaults to None. None
feature_scaling Optional sklearn-style scaler, applied per DataFrame. Defaults to None. None
target_scaling Optional sklearn-style scaler, applied per DataFrame. Defaults to None. None
dataset_type str “many_to_many” or “many_to_one”. Defaults to “many_to_many”. 'many_to_many'

Returns

Name Type Description
ConcatDataset ConcatDataset The concatenation of the per-DataFrame sequence datasets.

Examples

import pandas as pd
from spotoptim.data.manydataset import load_pooled_sequence_data

df1 = pd.DataFrame({"line": [1, 1, 2], "x": [0.1, 0.2, 0.3], "y": [1.0, 2.0, 3.0]})
df2 = pd.DataFrame({"line": [1, 1], "x": [0.4, 0.5], "y": [4.0, 5.0]})
pooled = load_pooled_sequence_data([df1, df2], target="y", group_by="line", drop="line")
print(len(pooled))
3