Skip to content

check_sufficient_rows

yohou.utils.validation.check_sufficient_rows(df, min_rows, context, df_name='DataFrame')

Validate DataFrame has sufficient rows for operation.

Generic validation consolidating observation horizon, seasonality cycle, and interval inference checks.

Parameters

Name Type Description Default
df DataFrame

DataFrame to validate.

required
min_rows int

Minimum number of rows required.

required
context str

Description of why rows are needed (for error message). Examples: "for memory buffer", "for seasonal decomposition", "to compute time intervals"

required
df_name str

Name of DataFrame in error message.

"DataFrame"

Raises

Type Description
ValueError

If DataFrame has fewer rows than required.

See Also

Source Code

Show/Hide source
def check_sufficient_rows(
    df: pl.DataFrame,
    min_rows: int,
    context: str,
    df_name: str = "DataFrame",
) -> None:
    """Validate DataFrame has sufficient rows for operation.

    Generic validation consolidating observation horizon, seasonality cycle,
    and interval inference checks.

    Parameters
    ----------
    df : pl.DataFrame
        DataFrame to validate.
    min_rows : int
        Minimum number of rows required.
    context : str
        Description of why rows are needed (for error message).
        Examples: "for memory buffer", "for seasonal decomposition",
        "to compute time intervals"
    df_name : str, default="DataFrame"
        Name of DataFrame in error message.

    Raises
    ------
    ValueError
        If DataFrame has fewer rows than required.

    See Also
    --------
    - [`check_forecasting_horizon_positive`][yohou.utils.validation.check_forecasting_horizon_positive] : Validate forecasting horizon is positive.
    - [`check_X_actual_required`][yohou.utils.validation.check_X_actual_required] : Validate X_actual is provided for recursive prediction.

    """
    actual_rows = len(df)
    if actual_rows < min_rows:
        raise ValueError(f"{df_name} has {actual_rows} rows but requires at least {min_rows} rows {context}.")