def df_unify(df, cols, unicol):
    """Unify multiple columns by recursively filling blanks from the specified list of columns.
    cols is the list of columns from which to copy (the first will be the most copied, the last the least and only if other columns did not contain any info)
    unicol is the name of the new unified column"""
    # Make a copy to avoid side effects
    df2 = df.copy()
    # Copy the first column as reference
    df2[unicol] = df2[cols[0]]
    # Then each subsequent column will be used to fill the blank parts
    for col in cols[1:]:
        df2.loc[df2[unicol].isnull() | (df2[unicol] == ''), unicol] = df2[col]
    # Return the Dataframe with the new unified column
    return df2