использование map
(обычно очень быстрое):
df['Response'] = list(map(lambda val: list(map(lambda d:{'Weight' : d[0],
'Response' : d[1]},
enumerate(val, 1))),
df['Response']))
или comprehension list
df['Response'] = [[{'Weight' : weight, 'Response' : response}
for weight, response in enumerate(val, 1)]
for val in df['Response']]
Выход
print(df)
Question \
0 "How are you?"
1 "how is it?"
Response
0 [{'Weight': 1, 'Response': 'high'}, {'Weight': 2, 'Response': 'moderate'}]
1 [{'Weight': 1, 'Response': 'cool'}, {'Weight': 2, 'Response': 'low'}]