def count_substr_in_column(data_frame, column_name, vals_set, desc=True):
    """
    Count the number of values containing for each substring in the provided list
    :param data_frame(DataFrame): DataFrame object
    :param column_name(string): column name
    :param vals_set(list(string)): List of substrings to count in the columns values
    :param desc(bool): Order the values in descending order if set to True
    :return: vals_count, vals_percentage: Dictionary of values count sorted in reverse order
        and dictionary of values percentage
    """
    vals_count = {}
    vals_percentage = {}
    for val in vals_set:
        vals_count[val] = data_frame[column_name].str.contains(
            val, regex=False, na=False).sum()
        vals_percentage[val] = vals_count[val] * 100 / data_frame[column_name].dropna().shape[0]
    vals_count = {
        key: value for key, value in 
        sorted(vals_count.items(), key=lambda item: item[1], reverse=desc)}
    vals_percentage = {
        key: value for key, value in 
        sorted(vals_percentage.items(), key=lambda item: item[1], reverse=desc)}
    return vals_count, vals_percentage