def keywordSearch(text_list, include_keywords, exclude_keywords=None):
    """
    Searches a list of text arguments and returns a list that includes/excludes
    the list elements that contain the keywords.
    
    Useful when searching for column names in a large dataframe, for example.

    Parameters
    ----------
    text_list : list
        List of string values.
    include_keywords : list
        List of keywords to search for.
    exclude_keywords : list, optional
        List of keywords that might be similar to include_keywords, but should
        be excluded nonetheless. The default is None.

    Returns
    -------
    found_list : list
        Returns items from the original list that match the keywords.

    """
    found_list = []
    for text in text_list:
        is_in_i_keys = sum((1 if i_key in text else 0 for i_key in include_keywords))
        is_in_e_keys = 0
        if exclude_keywords is not None:
            is_in_e_keys = sum((1 if e_key in text else 0 for e_key in exclude_keywords))
        if is_in_i_keys > 0 and is_in_e_keys == 0:
            found_list.append(text)
    return found_list