def split_features_to_process_df(df, force_keeping=None):
    """

    Parameters
    ----------
    {df}
    force_keeping: str or list

    Returns
    -------
    {df}
    kept_features_df: pandas DataFrame object or None
    """
    if force_keeping is not None:

        # To ensure that kept_features_df will be a df and not a series
        if isinstance(force_keeping, str):
            force_keeping = [force_keeping]

        kept_features_df = df.loc[:, force_keeping]
        df = df.drop(force_keeping, axis=1)
    else:
        kept_features_df = None

    return df, kept_features_df