def join_columns(df, column_names, delim='_'):
    """Join columns with a delimiter"""
    new_column = delim.join(column_names)
    df = df.copy()
    df[new_column] = df[column_names[0]].map(str)
    for c in column_names[1:]:
        df[new_column] += delim + df[c].map(str)
    return df