words = list(itertools.chain.from_iterable(w.values))
s = pd.Series(words, index=idx)
s.name = 'words'
print(df.join(s))
How can I create new rows in a pandas data frame containing the words in a string of an existing row?