def analyse_compounds(df_assay, df_compounds, name, func, **kwargs):
    """Analyse compound/assay data and add compound attributes to dataframe
    
    :param df: Dataframe of input data
    :type df: Pandas Dataframe
    :param func: Method to evaluate compound property
    :type func: First-order function, should return column of values
    :param name: Name of new property
    :type name: str
    :return: Dataframe of assay data
    """
    df_compounds[name] = func(df_assay, **kwargs)
    return df_compounds