from functools import reduce


def concat_cols(df, cols, delim):
    """

    Concatenate columns in a dataframe with a
    delimiter.

    Args:
        df (DataFrame): input DataFrame
        cols (list-like): columns to concatenate
        delimiter (str): delimiter to join column values

    Returns:
        Series with concatenated columns.

    """

    cols_str = [df[x].astype(str) for x in cols]

    return reduce(lambda a, b: a + delim + b, cols_str)