Using .agg with columns that are not string
Combining a few answers in this thread, I found this worked quite well when encountering columns that are not strings whilst avoiding slow lambda functions and allowing delimiters.
df['Period'] = df[['Year', 'Quarter']].astype(str).agg('-'.join, axis=1)