def split_df_by_regions(df):
    """
    Split the dataframe based on TotalUS, regions and sub-regions
    """
    df_US = df[df.region == 'TotalUS']
    regions = ['West', 'Midsouth', 'Northeast', 'SouthCentral', 'Southeast']
    df_regions = df[df.region.apply(lambda x: x in regions and x != 'TotalUS')]
    df_subregions = df[df.region.apply(lambda x: x not in regions and x != 'TotalUS')]
    return df_US, df_regions, df_subregions