Что насчёт этого,
print pd.merge(df,df_prices,left_index=True,right_index=True,how='outer').fillna(method='ffill')
Python 3:
print(pd.merge(df,df_prices,left_index=True,right_index=True,how='outer').fillna(method='ffill'))
Для более конкретной информации,
print pd.concat([df,df_prices],axis=1).ffill()
Выход:
make model prices
0 toyota yaris 1
1 toyota yaris 2
2 toyota yaris 3
3 toyota yaris 4