def METHOD_NAME(self, data: DataFrame, *args, **kwargs) -> DataFrame:
    """
    Reduce each group to a single row in the output.
    The output will have a row for each unique combination of the grouping
    variable levels with null values for the aggregated variable(s) where
    those combinations do not appear in the dataset.
    """
    grouper, groups = self._get_groups(data)
    if not grouper:
        # We will need to see whether there are valid usecases that end up here
        raise ValueError("No grouping variables are present in dataframe")
    res = (
        data
        .groupby(grouper, sort=False, observed=True)
        .METHOD_NAME(*args, **kwargs)
        .reindex(groups)
        .reset_index()
        .pipe(self._reorder_columns, data)
    )
    return res