Понимание списка будет работать:
df = pd.DataFrame({'R':[152,186,86], 'G':[112,191,121], 'B':[85,222,180] })
['#%02x%02x%02x' % (df['R'][i], df['G'][i], df['B'][i]) for i in range(len(df))]
Out
['#987055', '#babfde', '#5679b4']
Если вы хотите индекс строки:
[(df.index[i], '#%02x%02x%02x' % (df['R'][i], df['G'][i], df['B'][i])) for i in range(len(df))]
#out
[(0, '#987055'), (1, '#babfde'), (2, '#5679b4')]