<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def DAVIDgetGeneAttribute(x,df,refCol="ensembl_gene_id",fieldTOretrieve="gene_name"):
 """ Returns a list of gene names for given gene ids. :param x: a string with the list of IDs separated by ', ' :param df: a dataframe with the reference column and a the column to retrieve :param refCol: the header of the column containing the identifiers :param fieldTOretrieve: the field to retrieve from parsedGTF eg. 'gene_name' :returns: list of fieldTOretrieve separeted by ', ' in the same order as the given in x """

    
    l=x.split(", ")
    l=[ s.upper() for s in l ]
    tmpdf=pd.DataFrame({refCol:l},index=range(len(l)))
    df_fix=df[[refCol,fieldTOretrieve]].drop_duplicates()
    df_fix[refCol]=df_fix[refCol].apply(lambda x: x.upper())
    ids=pd.merge(tmpdf,df_fix,how="left",on=[refCol])
    ids=ids[fieldTOretrieve].tolist()
    ids=[ str(s) for s in ids ]
    ids=", ".join(ids)
    return ids