df2.Date = pd.to_datetime(df2.Date)
df = pd.merge_ordered(df1, df2, left_on=['Company', 'Quarter_End'],
    right_on=['Company', 'Date'], how='outer')
print(df)
How to group pandas DataFrame by varying dates?