skfolio.containers.concat#

skfolio.containers.concat(panels, *, verify_observations=False)[source]#

Concatenate panels along the observation axis.

This function performs strict vertical concatenation. All panels or panel views must have identical assets, field names, field types, field dtypes, categorical levels and 3D field metadata. Field arrays, observations, active_mask and estimation_mask are concatenated on axis 0.

Parameters:
panelsiterable of AssetPanel or AssetPanelView

Panels or panel views to concatenate. The iterable must contain at least one object.

verify_observationsbool, default=False

If True, raise an error when the concatenated observation labels contain duplicates.

Returns:
panelAssetPanel

Concatenated panel.

Examples

>>> from skfolio.containers import AssetPanel, concat
>>>
>>> panel_1 = AssetPanel(
...     fields={"returns": [[0.01, 0.02]]},
...     observations=["2024-01-01"],
...     asset_names=["A", "B"],
... )
>>> panel_2 = AssetPanel(
...     fields={"returns": [[0.03, 0.04]]},
...     observations=["2024-01-02"],
...     asset_names=["A", "B"],
... )
>>> concat([panel_1, panel_2])
AssetPanel(n_observations=2, n_assets=2, n_fields=1)