Как насчет понимания списка? В python3 вы можете использовать расширенную итеративную распаковку для эффективного создания нового списка.
# df['Synonyms'] = [[x, *y] for x, y in df[['Keyword'], 'Synonyms']].values]
df['Synonyms'] = [[x, *y] for x, y in zip(df['Keyword'], df['Synonyms'])]
df
Keyword Synonyms
0 fuzz [fuzz, hair, copper, pig, bull, cop, blur]
1 napkins [napkins, table]
2 rationalizations [rationalizations, systematization, rationaliz...
3 grandmasters [grandmasters, grandmaster]
4 rehearsing [rehearsing, practice]
Вот забавная альтернатива с map
:
k = iter(df['Keyword'].tolist())
df['Synonyms'] = df['Synonyms'].map(lambda x: [next(k), *x])
df
Keyword Synonyms
0 fuzz [fuzz, hair, copper, pig, bull, cop, blur]
1 napkins [napkins, table]
2 rationalizations [rationalizations, systematization, rationaliz...
3 grandmasters [grandmasters, grandmaster]
4 rehearsing [rehearsing, practice]