def find_columns_by_key(df, keys):
    """
    Find all Dataframe column names containing any of the keys
    
    Parameters
    ----------
    df : Dataframe
        Dataframe
    keys : array_like
        List of keys of `str` type

    Returns
    -------
    list
        List of column names

    """
    col = [c for c in df.columns if any([k.lower() in c.lower() for k in keys])]
    return col