@staticmethod
def _create_unique_column_name(df, col_name_prefix):
    """ given the columns of a dataframe, and a name prefix, return a column name which
            does not exist in the dataframe, AND which is prefixed by `prefix`

            The approach is to append a numeric suffix, starting at zero and increasing by
            one, until an unused name is found (eg, prefix_0, prefix_1, ...).
        """
    suffix = 0
    while f'{col_name_prefix}{suffix}' in df:
        suffix += 1
    return f'{col_name_prefix}{suffix}'
