Skip to content

Verb ungroup

ungroup(__data)

Return an ungrouped DataFrame.

Parameters:

Name Type Description Default
__data

The data being ungrouped.

required

Examples:

>>> from siuba import _, group_by, ungroup
>>> from siuba.data import cars
>>> g_cyl = cars.groupby("cyl")
>>> res1 = ungroup(g_cyl)
>>> res2 = cars >> group_by(_.cyl) >> ungroup()
Source code in siuba/dply/verbs.py
@singledispatch2((pd.DataFrame, DataFrameGroupBy))
def ungroup(__data):
    """Return an ungrouped DataFrame.

    Parameters
    ----------
    __data:
        The data being ungrouped.

    Examples
    --------
    >>> from siuba import _, group_by, ungroup
    >>> from siuba.data import cars

    >>> g_cyl = cars.groupby("cyl")
    >>> res1 = ungroup(g_cyl)

    >>> res2 = cars >> group_by(_.cyl) >> ungroup()
    """
    # TODO: can we somehow just restore the original df used to construct
    #       the groupby?
    if isinstance(__data, pd.DataFrame):
        return __data
    elif isinstance(__data, DataFrameGroupBy):
        return __data.obj
    else:
        raise TypeError(f"Unsupported type {type(__data)}")