def METHOD_NAME(
    df: pd.DataFrame,
    *,
    data_columns: Optional[Union[str, Iterable[str]]] = None,
    include_trivial_index: bool = False,
    header_parser: HeaderParserArg = None,
) -> Dataset:
    import pandas as pd
    columns = (
        from_pandas_series(
            pd.Series(df[column_name]),
            include_trivial_index=include_trivial_index,
            header_parser=header_parser,
        )
        for column_name in df.axes[1]
    )
    coords = {da.name: da for da in columns}
    if data_columns is None:
        data = coords
        coords = {}
    else:
        if isinstance(data_columns, str):
            data_columns = (data_columns,)
        data = {name: coords.pop(name) for name in data_columns}
        coords = {name: coord.data for name, coord in coords.items()}
    return Dataset(data, coords=coords)