Я предлагаю использовать pandas.DataFrame.update, который обновляет фрейм данных на основе индекса.
dfa = DataFrame([[2],[4]], index=[1,2], columns=['val'])
dfb = DataFrame([[4],[8]], index=[1,2], columns=['val'])
dfc = DataFrame([['dfa',-1],['dfb',-2],['dfa',-3]], index=[1,1,2], columns='dest','val'])
dfa.update(dfc[dfc['dest']=='dfa'])
dfb.update(dfc[dfc['dest']=='dfb'])
Использование цикла for в пандах обычно не рекомендуется.